猜数字游戏VC 6.0(C语言版)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B++; else i = i+0; } else i = i+0; } for(i = 0;i < 4; ++i) { iFra Baidu bibliotek(i != 2) { if(*(p+2) == *(q+i)) B++; else i = i+0; } else i = i+0; } for(i = 0;i < 4; ++i) { if(i != 3) { if(*(p+3) == *(q+i)) B++; else i = i+0; } else i = i+0; } return B; } void tip() { printf("提示:\n"); printf("该游戏是由本人无聊时制作,有很多不到位地方希望玩家多多包涵!\n"); printf("游戏规则:\n"); printf("玩家输入四个不同的数字(0-9),每按一个数字按一次 ENTER 键。"); printf("游戏中 A 前面的数字为您猜对数字的大小和具体位置的个数, B 前面的数字表示 您猜对了数字的大小,但并不是他的具体位置的个数。\n"); printf("例如:要猜的四位数是 1234,你猜的数字是 1345 则其下面显示为 1A2B!"); printf("下面请按 ENTER 键进入游戏!\n");
此程序可以在 VC++6.0 运行 #include <stdlib.h> #include <stdio.h> #include <time.h> #include <conio.h>//getch()函数用到 void tip();//提示信息函数 int just_same(int * p);//判断输入有没有相同 int just_A(int * p, int * q);//计算 A 值 int just_B(int * p, int * q);//计算 B 值 int main(void) { int a[4],b[4]; int i, j, k, l, n, p, A, B; A = 0; i = -1; j = -1; k = -1; l = -1; srand((unsigned int)(time(NULL)));//产生 0—9 随机数 tip(); system("cls");//清屏函数 while(i < 0) i = rand()%10; while( j == i||j < 0 ) j = rand()%10; while(k == i||k == j||k < 0) k = rand()%10; while(l == i||l == j||l == k||l < 0) l = rand()%10; a[0] = i; a[1] = j; a[2] = k; a[3] = l; //printf("%d %d %d %d\n",i,j,k,l);//可以拿来测试程序 for(p = 1;(A != 4)&& (p < 5); ++p) { printf("请输入您猜的四位数字:\n"); for(n = 0; n < 4; ++n) scanf("%d", &b[n]); while(just_same(b)) { printf(" 输入有错 !( 请输入四个不同的数字 (0-9) ,每按一个数字按一次 ENTER 键。)\n");
printf("请输入您猜的四位数字:\n"); for(n = 0; n < 4; ++n) scanf("%d", &b[n]); } A = just_A(a, b); B = just_B(a, b); printf("%d A %d B\n", A, B); } if(A != 4) printf("答案是%d%d%d%d\n",i,j,k,l); else printf("恭喜你猜对了!\n"); printf("按 ENTER 键结束!\n"); getch(); system("pause"); return 0; } int just_A(int * p, int * q) { int A, i; A = 0; for(i = 0; i<4; ++i) { if(*(p+i) == *(q+i)) A++; } return A; } int just_B(int * p, int * q) { int B, i; B = 0; for(i = 1; i<4; ++i) { if(*p == *(q+i)) B++; } for(i = 0;i < 4; ++i) { if(i != 1) { if(*(p+1) == *(q+i))
getch(); return; } int just_same(int * p) { int i, j, k; k = 0; for(j = 0; j<4; ++j) for(i = j+1; i < 4; ++i) { if(*(p+j) == *(p+i)) ++k; } if(k != 0) return 1; else return 0; }