document.onkeypress = getKey;
반응형

숫자야구!


 어릴 때 친구들이랑 심심하면 재밌게 하던 놀이 중 하나인데요. 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;

}


}



그다지 어려운 부분은 없습니다. 재밌는 코딩이 되셨기를 바랍니다 :)

반응형

+ Recent posts