숫자야구!
어릴 때 친구들이랑 심심하면 재밌게 하던 놀이 중 하나인데요. 3자리 숫자를 자릿수에 맞춰 맞추면 이기게 되는 단순한 게임입니다. 오늘은 그 숫자야구를 가장 기본적인 컴퓨터 언어인 C로 만들어보겠습니다.
#include <stdio.h> // printf & scanf를 이용하게 해줍니다.
#include <stdlib> // c에 있는 library를 이용하게 해줍니다.
#include <time.h> // time 함수를 사용합니다.
int main()
{
// 기본 변수부
srand(time(NULL));
int a,b,c,mod,dif,chance,stage,x,y,z,stri,ball,i;
stage = 1;
stri=0;
ball=0;
// 아래 부분은 랜덤 값을 집어넣기 위한 코딩입니다.
do{
a=rand()%10;
b=rand()%10;
c=rand()%10;
}
while(a==b || b==c || c==a);
{
}
//모드선택부분
printf("input mode (1: Play, 0: Exit): ");
scanf("%d", &mod);
if(mod==0){
return 0;
}
else if(mod==1){
printf("Set difficulties (1: Easy, 2: Normal, 3: Hard): ");
scanf("%d", &dif);
if(dif<1 || dif>3){
printf("Invalid input");
return 0;
}
printf("Let's play baseball game!");
// 몇번의 기회를 줄 것이냐는 부분인데요, 저같은경우엔 난이도에 따라서 5회씩 차감해주는 형태로 코딩해보았습니다.
for(chance = 20-dif*5; chance>0; chance--){
printf("\nStage %d - Input 3 numbers (a b c): ", stage);
scanf("%d %d %d", &x, &y, &z);
// 아래 부분은 스트라이크 볼 판정 부분입니다.
if(x==0 && y==0 && z==0){
printf("\nYou failed");
return 0;
}
if(x==y || y==z || z==x){
printf("Invalid input");
chance+=1;
x=99, y=99, z=99;
stage-=1;
}
if(a==x){
stri += 1;
}
if(b==y){
stri += 1;
}
if(c==z){
stri += 1;
}
if(a==y || a==z){
ball += 1;
}
if(b==x || b==z){
ball += 1;
}
if(c==x || c==y){
ball += 1;
}
if(x!=99&&y!=99&&z!=99)
printf("Stage %d - results: %d strike(s), %d ball(s)", stage, stri, ball);
if(chance == 1 && stri != 3){
printf("\nYou failed");
return 0;
}
if(stri == 3){
printf("\nCongratulation!");
return 0;
}
stage ++;
stri=0;
ball=0;
}
}
else{
printf("Invalid input");
return 0;
}
}
그다지 어려운 부분은 없습니다. 재밌는 코딩이 되셨기를 바랍니다 :)
'교육 > 유용한 정보' 카테고리의 다른 글
선형대수학 과제 꿀팁 - 행렬 계산기 (0) | 2020.07.06 |
---|---|
해외에 가지 않아도 해외 대학의 강의를 들을 수 있다?!-무크(MOOC) (0) | 2017.02.22 |
미국 유학 시 필요한 시험-SAT VS ACT (0) | 2017.02.15 |
공인어학시험의 종류 및 비교 2부(TEPS, OPIc, SAT) (0) | 2017.02.11 |
공인어학시험의 종류 및 비교 1부(TOEIC, TOEFL, TOEIC Speaking & Writing) (0) | 2017.02.09 |