猜数字小游戏//试着写,不怎么漂亮
[之前看到论坛上有发过猜数字的小游戏,感兴趣就自己写了下,因为是新人,花了好久,写的也不怎么漂亮,不过至少跑得起来程序代码:
#include <stdio.h> #include <stdlib.h> #include <time.h> #define X 0 #define Y 9 #define MAX 7 void main() { int n,m; int Num_source[4],Num_purpose[4]; int a,b,life,i_source,i_purpose; printf("游戏初始化...\n"); //随机函数 for(i_source=0;i_source<4;i_source++) { re: srand((unsigned)time(NULL)); n=rand()%(Y-X+1)+X; for(m=0;m<i_source;m++) { if(n==Num_source[m]) goto re; else continue; } Num_source[i_source]=n; } printf("初始化成功!\n"); printf("请输入一个四位数,如1234:\n"); //printf("%d%d%d%d\n",Num_source[0],Num_source[1],Num_source[2],Num_source[3]); //数据对比 for(life=0;life<MAX;life++) { a=0,b=0; //键盘输入 for(i_purpose=0;i_purpose<4;i_purpose++) Num_purpose[i_purpose]=((int)getchar()-48); fflush(stdin); for(i_purpose=0;i_purpose<4;i_purpose++) if(Num_purpose[i_purpose]>9||Num_purpose[i_purpose]<0) { if(life<MAX-1) { printf("输入错误,请重新输入:\n"); fflush(stdin); goto lp2; } else goto lp2; } for(i_source=0;i_source<4;i_source++) for(i_purpose=0;i_purpose<4;i_purpose++) if(Num_purpose[i_purpose]==Num_source[i_source]) { if(i_purpose==i_source) a++; else b++; } if(a==4) { printf("恭喜你答对了!\n"); break; } else { if(life<MAX-1) { printf("%dA%dB\n",a,b); printf("回答错误,请重新输入:\n"); } else printf("%dA%dB\n",a,b); } if(0) lp2: continue; } if(a!=4) printf("GAME OVER !\n"); }
学会了个新函数,fflush(stdin);用于缓存清空的