C言語で数字を当てる


どのようにC言語でデジタルゲームを書いたらいいですか?参考にしてください。具体的な内容は以下の通りです。
最初にヘッダを呼び出す

/***     ***/ 
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h> 
/***     ***/
追加定義関数

/**    **/ 
void start();//     
void low();//   
void mediate();//   
void high();//   
void res();//     
void chooce();//     
void help();//     
void name_set();//     
int main(void);//    
/**    **/
start()関数は、主に選択入力されます。コードは以下の通りです。

void start(){//     
 printf("***************************
"); printf("* 1. *
"); printf("* 2. *
"); printf("* 3. *
"); printf("***************************

"); /* */ int c; printf(" :"); scanf("%d",&c); switch(c){ case 1: chooce(); break; case 2: printf(" !
"); break; exit(0); case 3: help(); break; default: printf(" :
"); break; } /* */ }
name_set関数は主に遊び人の名前を聞いてから名前を出力します。ゲームですから、娯楽に来ます。

void name_set(){//     
 char name[10];
 printf("  ,    ?      :");
 gets(name);
 printf("%s,         

",name); }
help()関数が純粋なのはヘルプを提示することです。

void help(){//     
 printf("\t1.     300  , 5   
"); printf("\t2. 300-1000 , 10
"); printf("\t3. 1000 , 20
"); start();// , }
チョック関数は、主にゲームのレベルを選択します。

void chooce(){//     
 printf("***************************
"); printf("* 1. *
"); printf("* 2. *
"); printf("* 3. *
"); printf("***************************
"); int dj; printf(" :"); scanf("%d",&dj);// /* */ if(dj==1){ low(); } else if(dj==2){ mediate(); } else if(dj==3){ high(); } else{ printf(" , !
"); chooce(); } /* */ }
次は主な関数です。ゲームの内容とロジックです。
簡単に言えば、低レベル中級高級のコードロジックは同じです。stdlib.hのrand関数を使ってランダムな数値を抽出し、入力したgussと比較して、whileで実行し、入力して比較します。もし正確なtimes+1でサイクルを終了したら、正しくないなら、エラーを提示して、whileに戻って運行します。timesがその数値を超えるまで、サイクルを出します。
下で基本テンプレートを見てもいいです。(中の数値はピンインで代用します。)

void dengji(){
 int sb;
 srand(time(NULL));//  rand   
 printf("        :");
 scanf("%d",&sb);//      
 
 if(//         ){
  printf("         !
"); printf("
"); low(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<n){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<n){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } }
コードを見てもいいです。

void low(){//   
 int sb;
 srand(time(NULL));//  rand   
 printf("        :");
 scanf("%d",&sb);//      
 
 if(sb>300){
  printf("         !
"); printf("
"); low(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<5){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<5){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } } void mediate(){// int sb; srand(time(NULL));// rand printf(" :"); scanf("%d",&sb);// if(sb<300){ printf(" !
"); printf("
"); mediate(); } else if(sb>1000){ printf(" !
"); printf("
"); mediate(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<10){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<10){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } } void high(){// int sb; srand(time(NULL));// rand printf(" :"); scanf("%d",&sb);// if(sb<1000){ printf(" , !
"); high(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<20){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<20){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } }
レスス関数はゲームを返すための質問として理解できますが、私はreturn gamesに基づいて略語しました。結局ゲームは一回だけではなく、中で論理演算をして、他の関数に戻ります。

void res(){//         
 printf("

1. 2. 。"); int s; scanf("%d",&s); /* */ if(s==1){ chooce(); } else if(s==2){ printf(" !
"); exit(0);// } else{ printf(" !
"); res(); } /* */ return res();// res main }
メイン関数は主に呼び出しをして前のstartを呼び出します。set,choce,resなどの関数

int main(){
 name_set();//   
 
 start();//    

 int yes=1;//     ,  res   
 if(yes==1){
   res();
  }
}
最後までコードを全部見てもいいです。

/***     ***/ 
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h> 
/***     ***/

/**    **/ 
void start();//     
void low();//   
void mediate();//   
void high();//   
void res();//     
void chooce();//     
void help();//     
void name_set();//     
int main(void);//    
/**    **/

void start(){//     
 printf("***************************
"); printf("* 1. *
"); printf("* 2. *
"); printf("* 3. *
"); printf("***************************

"); /* */ int c; printf(" :"); scanf("%d",&c); switch(c){ case 1: chooce(); break; case 2: printf(" !
"); break; exit(0); case 3: help(); break; default: printf(" :
"); break; } /* */ } void name_set(){// char name[10]; printf(" , ? :"); gets(name); printf("%s,

",name); } void help(){// printf("\t1. 300 , 5
"); printf("\t2. 300-1000 , 10
"); printf("\t3. 1000 , 20
"); start();// , } void chooce(){// printf("***************************
"); printf("* 1. *
"); printf("* 2. *
"); printf("* 3. *
"); printf("***************************
"); int dj; printf(" :"); scanf("%d",&dj);// /* */ if(dj==1){ low(); } else if(dj==2){ mediate(); } else if(dj==3){ high(); } else{ printf(" , !
"); chooce(); } /* */ } void low(){// int sb; srand(time(NULL));// rand printf(" :"); scanf("%d",&sb);// if(sb>300){ printf(" !
"); printf("
"); low(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<5){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<5){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } } void mediate(){// int sb; srand(time(NULL));// rand printf(" :"); scanf("%d",&sb);// if(sb<300){ printf(" !
"); printf("
"); mediate(); } else if(sb>1000){ printf(" !
"); printf("
"); mediate(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<10){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<10){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } } void high(){// int sb; srand(time(NULL));// rand printf(" :"); scanf("%d",&sb);// if(sb<1000){ printf(" , !
"); high(); } int num=rand() % ("%d"+1,sb);// int times=0;// while(times<20){// int guess; printf(" :");// scanf("%d",&guess); times+=1;// /*** ***/ if(guess==num){ break;// } else if(guess>num){ printf(" !
"); } else{ printf(" !
"); } /*** ***/ } if(times<20){ printf(" !
");// printf(" %d ",times); } else{ printf(" , ! %d。
",num); printf(" %d
",times);// } } void res(){// printf("

1. 2. 。"); int s; scanf("%d",&s); /* */ if(s==1){ chooce(); } else if(s==2){ printf(" !
"); exit(0);// } else{ printf(" !
"); res(); } /* */ return res();// res main } int main(){ name_set();// start();// int yes=1;// , res if(yes==1){ res(); } }
ここでは関数の順番が乱れます。前では関数を宣言したので、関数の順番は必要ありません。声明しないと、使いたい関数を見つけにくいです。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。