char waitKeyPress(void){ char c = getKeyPress(); uint16_t counter = 50; //_delay_ms(50); while(c != 0 && c == getKeyPress() && counter < 1000){ _delay_ms(10); counter += 10; } return c; }
int main() { system("mode con cols=48 lines=23"); SetConsoleTitle(L"2048"); hideCursor(); int data[ROW][COL]; bool isInitial = true; bool isChanged = false; bool isEnded = false; int haveWinned = FALSE; int score = 0; initialNumber(data); randNumber(data, isInitial); printColor(data, score); do { isChanged = false; int key; getKeyPress(key); numberMove(data, key, isChanged); numberAdd(data, key, isChanged, score); numberMove(data, key, isChanged); if (isChanged) { randNumber(data, isInitial); } printColor(data, score); isEnded = isFinished(data); isWinned(data, haveWinned); if (haveWinned == JUSTWINNED) { if (MessageBox(NULL, TEXT("ÄãÓ®ÁË£¡ÊÇ·ñ¼ÌÐø£¿"), TEXT("2048"), MB_YESNO | MB_SYSTEMMODAL) == IDNO) { while (1) { _getch(); } } } } while (!isEnded); if (isEnded) { MessageBox(NULL, TEXT("ÓÎÏ·½áÊø"), TEXT("2048"), MB_OK | MB_SYSTEMMODAL); } while (1) { _getch(); } return 0; }
int QKeyPushButton::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QPushButton::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: pressedKey((*reinterpret_cast< bool(*)>(_a[1]))); break; case 1: getKeyPress((*reinterpret_cast< bool(*)>(_a[1]))); break; default: ; } _id -= 2; } return _id; }
void AI_Human::getCmdList(PlayerInfo info, CmdList& cmdList){ cmdList.clear(); KeyPress key; getKeyPress(key); switch(key){ case KEY_UP : cmdList.push_back(TURNRIGHT); break; case KEY_RIGHT: cmdList.push_back(MOVERIGHT); break; case KEY_LEFT : cmdList.push_back(MOVELEFT) ; break; case KEY_DOWN : cmdList.push_back(MOVEDOWN) ; break; case KEY_SPACE: cmdList.push_back(HARDDROP) ; break; case KEY_C : cmdList.push_back(HOLD) ; break; case KEY_X : cmdList.push_back(TURNRIGHT); break; case KEY_Z : cmdList.push_back(TURNLEFT) ; break; default : break; } }
void determineInterrupt(CpuPtr cpu, int interruptType, int processID) { switch(interruptType) { case 0: // timer interrupt { printf("------------------------------\nTimer Interrupt\n------------------------------\n"); scheduler(cpu->controller); break; } case 1: //KB interrupt { char key_press = getKeyPress(); printf("------------------------------\nKB I/O Interrupt - %c key pressed, ", key_press); setProcessReady(cpu->controller, 1); break; } case 2: //hdd interrupt { printf("------------------------------\nHDD I/O Interrupt, "); setProcessReady(cpu->controller, 2); break; } case 3: //video interrupt { printf("------------------------------\nVIDEO I/O Interrupt, "); setProcessReady(cpu->controller, 3); break; } default: { //do nothing } } //interruptFlag = 0; }