int main() { int i = 0; elem *arrayOne; elem *arrayTwo; arraySize = __VERIFIER_nondet_int(); assume(arraySize > 0); arrayOne = (elem*)malloc(arraySize * sizeof(elem)); arrayTwo = (elem*)malloc(arraySize * sizeof(elem)); resetArray(arrayOne); setArray(arrayTwo); initializeCount(arrayTwo); for (i = 0; i < arraySize; i++) { assert(arrayOne[i].status == RESET); assert(arrayTwo[i].status == SET); assert(arrayTwo[i].count == 0); } initializeCount(arrayOne); setArray(arrayOne); resetArray(arrayTwo); for (i = arraySize - 1; i >= 0; i--) { assert(arrayOne[i].count != 0 || arrayOne[i].status != SET || arrayTwo[i].status != RESET); } free(arrayOne); free(arrayTwo); return 0; }
int main() { int i = 0; elem *arrayOne = (elem*)malloc(arraySize * sizeof(elem)); elem *arrayTwo = (elem*)malloc(arraySize * sizeof(elem)); resetArray(arrayOne); setArray(arrayTwo); initializeCount(arrayTwo); for (i = 0; i < arraySize; i++) { __SMACK_assert(arrayOne[i].status == RESET); __SMACK_assert(arrayTwo[i].status == SET); __SMACK_assert(arrayTwo[i].count == 0); } initializeCount(arrayOne); setArray(arrayOne); resetArray(arrayTwo); for (i = 0; i < arraySize; i++) { __SMACK_assert(arrayOne[i].count == 0); __SMACK_assert(arrayOne[i].status == SET); __SMACK_assert(arrayTwo[i].status == RESET); } free(arrayOne); free(arrayTwo); return 0; }
// 입력받은 숫자를 정답과 비교하는 함수 void GameController::compareNum(int* currentNum, int* number) { // 볼카운트 초기화 initializeCount(); // 입력받은 수(currentNum)과 정답(number)을 비교하여 숫자가 위치까지 같다면 strike 증가 // 숫자만 같고 위치는 다르다면 ball 증가 for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (currentNum[i] == number[j]) { if (i == j) { count.strike++; break; } else { count.ball++; break; } } // 만약 3스트라이크라면(hit) 승리이므로 hit을 true로 변경 if (count.strike == 3) count.hit = true; // 스트라이크와 볼이 모두 0이라면 out이므로 out을 true로 변경 if (count.strike == 0 && count.ball == 0) count.out = true; }