人机猜数游戏C++程序代码

合集下载

一段简单的猜数字代码

一段简单的猜数字代码

⼀段简单的猜数字代码⼀段简单的猜数字代码,要求是1,要猜的数字是随机数字1到9;2,猜数字次数为三次;3,如果猜中就打印提⽰语,并且结束程序;4,如果猜错就打印正确值还有剩下的次数;5,如果次数为0,就打印结束,欢迎下次再来。

⽂件名为:easy_guess.py,代码如下:1# !usr/bin/env python32# *-* coding:utf-8 *-*34'''5⼀个简单的猜数字游戏6要猜的数字为随机数字1到97猜的次数为38如果猜中就打印猜中的提⽰语9如果没猜中就打印正确值,还有剩下的次数10如果次数为0,就打印结束,欢迎下次再来11'''1213from random import randint #导⼊模块141516#num_input = int(input("Please input a number(range 1 to 9 ) to continue: ")) #输⼊数字17 guess_time = 0 #定义猜数字次数1819'''开始主循环'''20while guess_time < 4:21 num_input = int(input("PLease input a number(range 1 to 9) to continue: ")) #开始输⼊字符,因为从终端输⼊python认为是字符串,所以要在最前⾯⽤int()函数强制转化为整型,不然后续⽐较的时候会出现错误;22 number = randint(1,9) #定义随机数字,从1到923 remain_time = 3 - guess_time #定义剩下的猜字次数2425if num_input == number: #⽐较输⼊的数字是否和随机数相等,代码的第21⾏前如果没有转化成整型,这⾥会提⽰str不能与int进⾏⽐较;26print("Great guess, you are right!") #相等就执⾏27break#跳出主循环,后续的代码都不会再执⾏28elif num_input > number: #⽐较输⼊的数字是否⼤于随机数29print("Large\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满⾜条件就提⽰正确答案和剩余次数30elif num_input < number:31print("Small\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满⾜条件就提⽰正确答案和剩余次数3233 guess_time += 1 #每次循环完成都让猜字次数(guess_time)⾃加1,直到不满⾜主循环条件guess_time < 4上⾯的代码并不能执⾏如果次数为0 就打印结束,欢迎下次再来,⽽且也没有判断⽤户输⼊,下⾯把代码改⼀下,来完善⼀下,⽂件名为another_easy_guess.py:1# usr/bin/env python32# *-* coding:utf-8 *-*34from random import randint #导⼊模块56 guess_time = 0 #定义猜数字次数78'''开始主循环'''9while guess_time < 4:10 remain_time = 3 - guess_time #定义猜的次数11 num_input = input("Please input a number(integer range 1 to 9) to continue(You have {} times to guess): ".format(remain_time)) #开始输⼊12 number = randint(1,9) #定义随机数131415if guess_time >=0 and guess_time < remain_time: #猜的次数⼤于0还有⼩于剩余次数才会执⾏下⾯的代码块16if not num_input.isdigit(): #判定输⼊的是否是数字17print("Please input a integer to continue.") #如果不是数字,提⽰⽤户输⼊数字18elif int(num_input) < 0 or int(num_input) > 10: #判定是不是在我们设定的数字范围内19print("Please use the number 1 to 9 to compare.") #如果不是就提⽰20elif int(num_input) == number: #判定输⼊的数字是否与随机数相等21print("Great guess, you are right!")22break23elif int(num_input) > number: #判定输⼊数是否⼤于随机数24print("Large\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))25elif int(num_input) < number: #判定输⼊数是否⼩于随机数26print("Small\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))27else:28print("You have arrived the limited, see you next time!") #次数⼩于剩余次数后执⾏29break#跳出循环3031 guess_time += 1 #猜的次数⾃增1直到guess_time < 4;323334'''历史遗留问题:1,上⾯的代码只针对⽤户输⼊的数字,⽤户输⼊字符串也是会计算次数的;35 2,如果都没猜中且次数⽤完,是直接打印最后的You have arrived the limited, see you next time!⽽预期的提⽰正确答案。

猜数字游戏源代码

猜数字游戏源代码

猜数字游戏本案例知识要点●Visual C++ 6.0下创建Win32 Console Application并运行的方法●C++程序中类的定义和实现●C++程序中类文件的引用及类的实例化一、案例需求1.案例描述由计算机产生0到99的随机数,游戏参加者将猜到的数字从键盘输入,计算机对猜数结果进行判断直到猜出正确结果。

2.案例效果图猜数字游戏运行效果如图2-1所示。

3.功能要求(1)所猜0到99的目标数字由计算随机产生。

(2)0到99的随机数的产生、所猜数字和目标数字的比较等过程以类的形式实现。

(3)若游戏参加者所猜数字正确,则提示所猜总次数;若猜数错误,则提示所猜数字比目标数字大还是小。

二、案例分析本案例中设计了一个Guess类,实现产生随机数、进行参加游戏者输入数字与目标数字的比较、计算猜数次数。

主程序中通过类的实例化实现猜数过程。

三、案例设计为了实现猜数过程,设计Guess类,结构如图2-2所示。

●数据成员int Value产生的0到99间的目标数字。

int CompareTimes为游戏者已猜次数。

●函数成员Guess()构造函数,用来产生随机目标数字。

int Compare(int InputValue)用来判断游戏者所猜数字是否正确,其参数InputValue为游戏者所猜数字。

int GetCompareTimes()用来获得游戏者已猜次数。

五、案例实现猜数字游戏源程序代码如下所示。

************************************* // * Guess.h 类声明头文件************************************* #1. #include <time.h>#2. class Guess#3. {#4. private:#5.int Value; //计算机产生的目标数字#6. int CompareTimes; //所猜次数#7. public:#8. Guess(); //构造函数的声明#9. int Compare(int InputValue); #10. int GetCompareTimes();#11. };#12. Guess:: Guess ()//构造函数的实现#13. {#14. CompareTimes=0; //猜数次数置零#15. srand((unsigned)time(NULL)); //产生随机数种子#16. Value=rand()%100;//产生0~99的随机数#17. }#18.int Guess::Compare(int InputValue)//比较猜数是否正确#19. {#20. CompareTimes++; //所猜次数加1 #21. return InputValue-Value;//比较所猜数字和目标数字是否相同,相同//返回0#22. }#23. int Guess::GetCompareTimes()//获得已猜次数#24. {#25. return CompareTimes;#26. }//************************************* //* GuessNumber.cpp 源文件************************************* #1. #include <iostream>#2. #include "Guess.h"//将已定义的类文件包含到主程序文件中#3. using namespace std;#4. int main()#5. {#6. int InputValue;#7.cout<<"\n** 欢迎使用本程序**\n"; #8. for(;;)#9. {#10. char Select;#11. Guess guessobj;//实例化Guess类#12. cout<<"我已经想好数字啦(0~99),请猜吧!\n";#13. for(;;)#14. {#15. int CompareResult; #16. cout<<"\n我想的是:";#17. cin>>InputValue;//获得游戏者输入的所猜数字#18. CompareResult=pare (InputValue);//判断游戏者所猜数字是否正确#19. if(CompareResult==0) //正确#20. {#21. int GuessTimes=guessobj.GetCompareTimes(); #22. cout<<"\n恭喜您,猜对啦!"<<endl <<"您一共猜了"<<GuessTimes<<"次"<<endl;#23. break;#24. }#25. else if(CompareResult>0)#26. {#27. cout<<"\n对不起,您猜的数大啦!\n";#28. }#29. else#30. {#31. cout<<"\n对不起,您猜的数小啦!\n";#32. }#33. }#34. cout<<"\n您还想再玩吗?('n'=No,Others=Yes)\n";#35. cin>>Select;#36. cout<<'\n';#37. if(Select=='n'||Select=='N')#38. {#39. break;#40. }#41. }#42. cout<<"********** 感谢您的使用! **********\n";#43. return 0;#44. }六、案例总结与提高1.案例总结(1)本案例的重点是介绍Visual C++ 6.0下创建并运行一个C++Win32控制台应用程序的基本过程。

C语言课程设计猜数字游戏

C语言课程设计猜数字游戏

C语言课程设计猜数字游戏课程设计报告课程名称:C语言程序设计课题名称:猜数字游戏专业:自动化班级:1095班学号:xxxxxxxx6333姓名:XXXXXXXX指导教师:XXXXXXXX日期:2016年6月28日一、问题描述:本游戏可以由程序随机产生或由用户输入四个到九之间不重复的数字。

玩家通过游戏提示输入八次来匹配上面所输入的数字。

其中,A表示位置和数字都正确,B表示数字正确但位置不正确。

二、功能要求:1.游戏显示以下菜单:1)随机产生数据2)用户输入数据3)退出游戏2.游戏成功或失败后都能返回主菜单。

三、算法提示:1.数据结构:数组2.使用简单的程序设计方法。

四、测试数据:测试数据:3792第一次输入:12340A2B第二次输入:56780A1B第三次输入:08670A1B第四次输入:97861A1B第五次输入:17942A0B第六次输入:27932A2B第七次输入:37924A0B游戏成功!五、其他:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其他功能,如破记录功能,若匹配次数小于纪录保持者,则为破纪录。

目录第一章绪论1.1 项目背景第三条模块调用这一章节将会介绍第三条模块的调用方式,以及如何在程序中正确使用它。

在使用第三条模块之前,我们需要先进行一些准备工作,包括配置环境变量和安装必要的依赖库。

在调用第三条模块时,我们需要注意一些细节问题,比如参数的传递方式和返回值的处理方法。

通过本章的研究,相信大家可以更加熟练地使用第三条模块,提高程序的开发效率。

第四章分析本章节将会对程序进行分析,包括对程序的结构和功能进行详细的介绍。

我们将会从程序的主要模块入手,逐步分析每个模块的功能和实现方法。

通过本章的研究,相信大家可以更加深入地了解程序的内部机制,为后续的开发工作打下坚实的基础。

第一条模块解释与功能在本节中,我们将会对第一条模块进行详细的解释,并介绍它的具体功能。

第一条模块是整个程序的核心模块,它负责实现程序的主要功能,包括菜单的显示、游戏的运行等。

C语言猜数游戏代码

C语言猜数游戏代码

#include <stdio.h>#include <math.h>#include <stdlib.h>#include <time.h>int i;long int rn();void fun();void gc();int input(long int);void grade(int);int welcome();int compare(long int,long int);void choise(int *,int);void main(){system("cls");printf("\n\n\n\t\t* * * * * * * * welcome * * * * * * * *");printf("\n\n\n");printf("\t\t\tmaker: xiachao xiaoyuyan");printf("\n\n\n\t\t\tuse enter to be continue");getch();fun();}void fun(){int b,s,g;long int a;system("cls");s=welcome();if(s==1){system("cls");a=rn();b=input(a);grade(b);gc();}if(s==2){system("cls");printf("\n\n\n\n\n");printf("\t---------------------------------------------------------\n");printf("\t|game rules: |\n");printf("\t||\n");printf("\t|input your number(10000--99999),it will compare to the |\n");printf("\t||\n");printf("\t|system's number(10000--99999),and the number doesn't have|\n");printf("\t||\n");printf("\t|same digit. |\n");printf("\t||\n");printf("\t|if your number as same as system,your win,else try again.|\n");printf("\t||\n");printf("\t ---------------------------------------------------------");gc();}if(s==3){printf("\n\n\t\t\tThanks for your using.\n");printf("\t\t\t\tBye Bye!");getch();exit(0);}}long int rn(){int b,d;long int c;unsigned long int a;int array[5];time_t t;time(&t);srand(t);loop1:a=10000+rand() % 90000;c=a;for(i=0;i<5;i++){array[i]=c%10;c=c/10;}choise(array,5);b=array[0];for(i=1;i<5;i++){if(b==array[i])goto loop1;elseb=array[i];}return a;}void choise(int *num,int n){int j,k;for(i=1;i<n;i++){k=num[i];j=i-1;while((j>=0)&&(num[j]>k)){num[j+1]=num[j];j--;}num[j+1]=k;}}int compare(long int a,long int b) {int c;if(a>b){printf("\t\t\tneed greater!");printf("( >%ld )\n",b);c=0;}if(a<b){printf("\t\t\tneed less!");printf("( <%ld )\n",b);c=0;}if(a==b){printf("\t\t\tIt's true!\n");c=1;}return c;}int input(long int a){int c=0;long int b;printf("\n\n\n\n\n");printf("\t\t\tplease input your number:\n");printf("\t\t\tinput 0 back to main menu.");loop2:printf("\n\t\t\ttimes %d:",c+1);scanf("%ld",&b);c++;if(c>67){printf("\t\tyou are lose!");gc();}if(b==0)fun();elseif(compare(a,b)!=1) goto loop2;return c;}void grade(int num){int grade=0;printf("\t\t\tyou use %d times\n",num);if(num<4)grade=100-10*(num-1);else if(num<8)grade=80-5*(num-3);else if(num<68)grade=60-(num-7);printf("\t\t\tyour grade is %d",grade);switch(num){case 1:printf("\tyou are so lucky!!!");break;case 2:case 3:case 4:printf("\tlucky!");break;case 5:case 6:case 7:case 8:case 9:printf("\tgreat!");break;case 10:case 11:case 12:case 13:case 14:case 15:case 16:printf("\tgood!");break;case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25: printf("\tjust so so.");break;default:printf("\tmaybe you can better.");}}int welcome(){int s;printf("\n\n\n\n");printf("\t\t********************************************\n");printf("\t\t* *\n");printf("\t\t* welcome paly the game! *\n");printf("\t\t* *\n");printf("\t\t* input 1: start the game *\n");printf("\t\t* input 2: help information *\n");printf("\t\t* input 3: quit the game *\n");printf("\t\t********************************************\n");printf("\t\tplease select: ");scanf("%d",&s);return s;}void gc(){int a;printf("\n\n\t\tinput 1: quit the game;\tinput 2: back to menu.\n");printf("\n\t\tplease select : ");scanf("%d",&a);if(a==1)exit(0);if(a==2){system("cls");fun();}if(a!=1&&a!=2){printf("\t\tinput error!check your input!\n\n");gc();}}。

ai猜数c语言代码

ai猜数c语言代码

ai猜数c语言代码AI猜数C语言代码引言:随着人工智能技术的发展,越来越多的应用场景涌现出来。

其中,利用人工智能来猜测一个数值是一种常见的应用。

本文将介绍如何使用C语言编写一个简单的AI猜数程序。

主体部分:1. 引入必要的头文件在开始编写代码之前,我们首先需要引入一些必要的头文件,以便使用C语言的一些基本函数和数据类型。

在本例中,我们将使用stdio.h头文件,它包含了C语言中输入输出的相关函数。

2. 定义主函数在C语言中,程序的执行入口是主函数。

我们需要在主函数中编写代码以实现AI猜数的功能。

主函数的定义通常如下所示:```cint main() {// 在这里编写代码return 0;}```3. 初始化变量在猜数程序中,我们需要定义一些变量来存储猜测的数值、上下界等信息。

在本例中,我们需要定义一个整型变量来存储猜测的数值,以及两个整型变量来存储上下界。

我们可以使用C语言的赋值语句来为这些变量赋初值,示例代码如下:```cint guess;int lowerBound = 1;int upperBound = 100;```4. 实现猜数逻辑接下来,我们需要编写代码来实现猜数的逻辑。

具体而言,我们需要使用循环语句来反复猜测数值,直到猜中为止。

在每次猜测之后,我们需要根据猜测的结果来更新上下界,以便缩小猜测的范围。

示例代码如下:```cwhile (1) {guess = (lowerBound + upperBound) / 2;printf("我猜的数是:%d\n", guess);// 猜测结果处理逻辑// ...// 更新上下界// ...// 判断是否猜中// ...}```5. 处理猜测结果在每次猜测之后,我们需要根据猜测结果来进行处理。

如果猜中了,我们可以输出一个成功的提示信息,并退出循环。

如果猜测的数值过大或过小,我们可以相应地更新上下界,以缩小猜测的范围。

C语言课程设计--猜数字游戏

C语言课程设计--猜数字游戏

课程设计报告课程名称C语言程序设计课题名称猜数字游戏专业机械设计及其自造化班级1185班学号201113090516姓名指导教师王颖2 0 1 2年6 月2 2 日湖南工程学院课程设计任务书课程名称C语言程序设计课题猜数字游戏专业班级机械设计1185 班学生姓名学号201113090516指导老师王颖审批王颖任务书下达日期2012 年6 月 1 日任务完成日期2012 年6 月22 日设计课题四:猜数字游戏一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。

玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。

A表示位置正确且数字正确,B表示数字正确而位置不正确。

二、功能要求:1、本游戏显示这样的菜单:(1)随机产生数据(2)用户输入数据(3)退出游戏2、游戏成功与否都能返回主菜单三、算法提示:1、数据结构:数组2、用简单的程序设计方法四、测试数据:测试数据: 3792第一次输入: 12340A2B第二次输入: 56780A1B第三次输入: 08670A1B第四次输入: 97861A1B第五次输入: 17942A0B第六次输入: 27932A2B第七次输入: 37924A0B游戏过关!!!五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。

目录第一章绪论 (1)第一节项目背景 (1)第二节本课题所做的工作 (2)第二章需求分析第一节用户需求分析 (3)第二节开发环境分析 (4)第三章程序设计 (5)第一节程序的功能 (5)第二节输入输出的要求 (5)第三节程序模块 (6)第一条模块组成 (6)第二条层次结构 (8)第三条模块调用 (9)第四章分析 (10)第一节模块解释与功能 (10)第五章调试 (14)第一节菜单测试 (14)第二节游戏测试 (16)第一条在自定义中 (16)第二条在随机游戏中 (19)第六章总结 (21)第七章附录 (23)第一节附录A 源程序 (23)第二节附录B 参考文献 (32)课程设计评分表 (33)第一章绪论第一节项目背景C语言一共有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。

C语言——猜数字游戏代码

C语言——猜数字游戏代码

C语言——猜数字游戏代码#include#include#includeint x[4],y[4];//x是计算机产生的数字,y是玩家输入的数字void begin(void);//初始页void start(void);//开始游戏void creat_num(void);//创建数字int judgenum(int *n);//判断输入数字是否正确int judgeA(int *a,int *b);//获取Aint judgeB(int *a,int *b);//获取Bvoid win(void);//赢游戏void lose(void);//输游戏/************************************************************** ***********/int main() /*主函数*/{char PRESS; /*按键变量*/int i,A,B,outwhile=0; /*outwhlie为跳出循环标志*/begin(); /*显示初始页面和游戏说明*/do{scanf("%c",&PRESS); /*获取按键*/fflush(stdin); /*清除缓存*/switch(PRESS){case 'e':case 'E':exit(0);break; /*退出*/case 's':case 'S': /*是开始键*/start(); /*开始新游戏*/for(i=1;i<=8;i++) /*循环8次*/{y[0]=y[1]=y[2]=y[3]=-1;/*输入前使y置于-1*/printf("\n请输入第%d个四位数,各位之间以空格隔开:",i); do{scanf("%d%d%d%d",&y[0],&y[1],&y[2],&y[3]);fflush(stdin);/*清除缓存*/if(judgenum(y)==0) /*判断输入是否合法*/printf("输入数字不合法,请重新输入:");}while(!judgenum(y));A=judgeA(x,y); /*获取A*/B=judgeB(x,y); /*获取B*/if(A==4)break; /*如果A等于4,跳出循环*/printf("%dA%dB\n",A,B);printf("继续输入(c)看答案(a)离开(e)\n");outwhile=0; /*置零*/while(outwhile==0){scanf("%c",&PRESS);fflush(stdin); /*清除缓存*/switch(PRESS){case 'c':case 'C':outwhile=1;break;/*继续输入*/case 'a':case 'A':outwhile=1;goto out;break;/*看答案,认输*/ case 'e':case 'E':outwhile=1;exit(0);break;/*退出游戏*/default :printf("输入错误,请重新输入:");break;/*输入错误*/}}}out:if(A==4) win(); /*A等于4时赢*/else lose(); /*A不等于4时输*/break;default :printf("输入错误,请重新输入:");break; /*输入错误*/ }}while(1);return 0;}/*主函数结束*//************************************************************** *****************/void begin(void)//初始页和帮助{printf("\n\n\n\n\n");printf("******************************************************* *************\n");printf(" 猜数字游戏\n");printf("游戏帮助:\n");printf(" 每局游戏,计算机将随机产生一个四位整数,这个整数各个位上的数字都\n");printf("不重复,且首位可以为0。

C语言程序课程设计-猜数字游戏

C语言程序课程设计-猜数字游戏

C语言程序设计课程设计专业:自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2015年07月21日一.引言1.1设计目的复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。

提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。

使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。

1.2设计要求在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。

然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。

最后认真完成课程设计说明书,并对设计方法,结果等进行总结。

充分地分析和理解问题本身,弄清要求做什么(What to do?)。

在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。

最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。

确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。

上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。

静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。

二.基础题2.1题目用选择法对10个数进行排序。

有一个已排好序的数组。

现输入一个数,要求按原来的规律插入到原数组中。

2.2解题思路程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。

先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
count++;
int count1=0,count2=0;
cin>>num;
for(int i=0,d=1000;i<4;i++)
{
b[i]=num/d; num%=d; d/=10;
}
i=0;
while(i<4)
{
if(a[i]==b[i]) count1++;i++;
}
if(count1==4)
if(b2==4)
{
print(); menu();
}
else
if(b2-b1==2) change(j,k); //若上次与本次的差为2,则交换两个元素即可结束
else
if(b2-b1==-2) //若上次与本次的差为-2,则说明已交换的(a[j],a[k])是错误的将(a[j],a[k])还原后,只要交换另外两个元素即可结束游戏*/
cout<<"请问有几个数字是正确的?";
cin>>m; //m:人输入包含几位数字
for(j=0;j<m;j++)
a[k+j]=i; //a[]:存放已确定数字的数组
k+=m; //k:已确定的数字个数
}
if(k<4)
for(j=k;j<4;j++)
a[j]=0;
cout<<"你想的数字可能是: "<<a[0]<<a[1]<<a[2]<<a[3]<<'\n';
{
temp=a[j]; a[j]=a[k]; a[k]=temp; change(j,k);
}
else
if(b2<=b1)
{
temp=a[j]; a[j]=a[k]; a[k]=temp; //恢复交换的两个数字
}
else b1=b2; //其它情况则将新输入的位置信息作为上次的位置保存
}
}
void print()
{
cout<<"你猜对了!\n所猜次数为:"<<count<<endl; getch();
}
if(count2!=4)
for(i=0;i<4;i++)
for(int j=0;j<4;j++)
if(b[i]==a[j])
{
count2++; break;
}
cout<<"你所猜的四位数中:\n数字和位置都正确的有"<<count1<<"个,总共相同的数字有"<<count2<<"个\n";
if(a[j]!=a[k])
{
temp=a[j]; a[j]=a[k]; a[k]=temp; //交换a[j],a[k]
cout<<" *你想的数字可能是: "<<a[0]<<a[1]<<a[2]<<a[3]<<'\n';
count++;
cout<<"请问数字位置正确的有几个?";
cin>>b2;
goto next;
}
void game2()
{
int i,j,k=0,m,b1,b2;
cout<<"请玩家想一个四位数。。。\n";
for(i=1;i<10&&k<4;i++) //i:分别显示四个1~9确定四个数字的组成
{
cout<<"你想的数字可能是:"<<i<<i<<i<<i<<'\n';
count++;
switch(choice)
{
case 1: game1();
break;
case 2: game2();
break;
case 0: exit(0);
}
}
void game1()
{
int num;
int b[4];
makeNum();
cout<<"电脑已出题,";
next:cout<<"请玩家输入所猜想的四位数: ";
count++;
cout<<" **请问数字位置正确的有几个?";
cin>>b1;
if(b1==4)
{
print(); menu();
}
int temp;
for(flag=1,j=0;j<3&&flag;j++) //实现四个数字的两两(a[j],a[k])交换
for(k=j+1;k<4&&flag;k++)
int a[4];
int count=0,flag;
void main()
{
menu();}Biblioteka void makeNum()
{
int p;
srand((unsigned)time(NULL));
p=rand()%9000+1000;
for(int i=0,n=1000;i<4;i++)
{
a[i]=p/n; p%=n; n/=10;
if(r!=s&&r!=t) d[c++]=r;
r=a[d[1]]; a[d[1]]=a[d[0]]; a[d[0]]=r; //交换除a[s]和a[t]以外的两个元素
print();
flag=0;
}
{
cout<<"***************\n那么,你想的数字一定是: "<<a[0]<<a[1]<<a[2]<<a[3]<<'\n';
cout<<"电脑所猜次数为:"<<count<<'\n';
menu();
}
void change(int s,int t)
{
int r,c=0,d[2];
for(r=0;r<4;r++) //查找s和t以外的两个元素下标
}
}
void menu()
{
int choice;
cout<<"============菜单============= ";
cout<<"\n 1:电脑出数字玩家猜";
cout<<"\n 2:玩家出数字电脑猜";
cout<<"\n 0:退出\n";
cout<<"输入选择: ";
cin>>choice;
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
void makeNum();
void menu();
void game1();
void game2();
void print();
void change(int,int);
相关文档
最新文档