(코드 일부 공개)C언어 숫자야구 소스코드 및 실행파일
- 최초 등록일
- 2019.12.06
- 최종 저작일
- 2019.12
- 압축파일
- 가격 1,000원
소개글
C언어로 짠 숫자야구입니다.
코드는 총 102줄입니다.
아래 보시면 소스코드의 일부를 공개되어 있으니 참고하시면 됩니다.
메인함수에 나와있는것처럼 함수를 이용해 짧고, 간결하게 짜여졌습니다.
LEVEL값을 바꾸면 n자리 숫자야구로 바뀌게 설계했습니다.
이 소스코드 LEVEL값만 바꾸시면 n자리수 숫자야구를 만드실 수 있어요.
아래 공개된 소스코드에 수정해야하는 LEVEL을 주석으로 설명해 두었습니다.
함수와 포인터를 적절히 활용했구요. 간단한 과제용으로 적합합니다.
특히 함수와 원라인 처리패턴을 잘 적용해서 보기 깔끔하고 좋은 점수를 기대하실 수 있습니다.
--------------------------------------------------------------------------------------------------------
공개코드는 전처리기와 메인함수, clearcheck와 overlap함수입니다.
웹 상에서는 중괄호나 역슬래쉬가 제대로 표현되지 않습니다. 실제 코드는 이상없습니다.
구매하시기 전에 보고 참고하시면 되겠습니다.
#include
#include
#include
#define randint(first, end) first + rand() % (end - first) // first부터 end-1 사이의 랜덤한 값을 리턴
#define LEVEL 4 //이 값을 바꾸면 n자리수 숫자야구로 바뀝니다. 2자리 ~ 10자리 숫자야구까지 가능
#define true 1
#define false 0
int clearcheck(int answer[], int guess[]) { //정답과 입력값이 일치하는지 확인
for (int i = 0; i < LEVEL; i++) {
if (answer[i] != guess[i])return false;
}
return true;
}
int overlapcheck(int guess[]) {
int overlap = false;
for (int i = 0; i < LEVEL - 1; i++) {
for (int j = i + 1; j < LEVEL; j++) {
if (guess[i] == guess[j]) {
overlap = true;
printf("중복된 숫자가 입력되었습니다!\n");
goto escape; //반복문 탈출
}
}
}
escape:
return overlap;
}
int main() {
srand(time(NULL));
printf("%d자리 숫자야구입니다.\n", LEVEL);
int* answer = get_answer(); //정답을 받아옴
int* guess = NULL;
int tries = 0;
while (1) {
guess = get_table(get_integer()); //숫자를 입력받고 배열로 반환받음
tries++;
if (overlapcheck(guess)) continue;
if (clearcheck(answer, guess))break;
printf("Strike : %d, Ball : %d\n", get_strike(answer, guess), get_ball(answer, guess)); //함수를 이용해 원라인처리
}
printf("맞추셨습니다! 시도횟수 : %d", tries);
getch();
return 0;
}
컴파일 실행환경
Zip archive data
압축파일 내 파일목록
숫자야구.c
숫자야구.exe
참고 자료
없음