人机猜数游戏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语言程序设计课题名称:猜数字游戏专业:自动化班级: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语言猜数游戏代码
#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语言代码引言:随着人工智能技术的发展,越来越多的应用场景涌现出来。
其中,利用人工智能来猜测一个数值是一种常见的应用。
本文将介绍如何使用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语言程序设计课题名称猜数字游戏专业机械设计及其自造化班级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语言——猜数字游戏代码#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语言程序设计课程设计专业:自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院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()函数,重新排序的到最后的有顺序的一组数据。
c语言编程-猜数字游戏
计算机实习报告面向过程编程用C语言求解实际问题一、问题描述游戏类第15个任务——猜数字游戏任务描述:计算机从0~9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数(0不出现在首位),然后让玩家猜该数。
若玩家猜对该数,游戏则结束;若玩家猜得不对,则计算机告知玩家,数字猜对了且位置也正确的数字有几个;数字猜对了但位置不正确的数字有几个,然后让玩家继续猜。
对每个数玩家最多有m(m>0)次猜的机会。
功能要求:①玩家可自行设置被猜数的位数n和最多猜测机会数m。
②玩家可用键盘输入其所猜数,也可通过鼠标点选数字给出其所猜数。
③当玩家没有猜对时,用不同颜色的文字显示数字猜对了且位置也正确的数字个数和数字猜对了但位置不正确的数字个数,且显示文字要直观、易理解。
例如,正确答案为52467,玩家所猜为53269,则有2个数字(即5和6)数字对位置也对;有1个数字(即2)数字对但位置对。
④玩家猜测m次后仍未猜对,则向玩家公布答案,并询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑤当玩家猜对时,输出“恭喜你猜对了”,并询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑥玩家可以在游戏进行过程中选择放弃继续猜数。
玩家放弃继续猜数后,询问玩家是否继续进行新游戏。
此时玩家可以选择继续进行新游戏或退出游戏。
⑦若玩家猜对数字后选择退出游戏时,询问玩家是否记录其成绩,如果选择记录,则进一步要求玩家输入用户名;否则,直接退出。
⑧游戏维护一个排行榜,按照猜对一个5位数所用猜测次数由少到多的顺序排序,并在记录完玩家成绩后显示给玩家。
二、需求分析1)猜数字游戏软件的功能有:进入主菜单,输入挑战的次数,输入猜测的数字,若在此次数之内没有猜对,则提示挑战失败,是否继续挑战。
若挑战过程中途放弃,则提示是否继续挑战。
若挑战成功,则提示是否记录成绩,输入用户名,计入排行榜。
排行榜会按照猜测次数由小到大进行排序。
猜数字游戏C语言代码
try_time=10;
for(i=0;i<count;i++)
{
int t;
do
{
t=rand()%10;
}while(i==0 && t==0);
if(flag[t]==0)
{
a[i]=t;
flag[t]=1;
}
else i--;
}
printf("\n∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n");
if(sumA==4)
{
printf("\n恭喜你!猜对了!!\n
printf("\n恭喜你!你的成绩能进入积分榜!\n");
printf("请输入你的姓名:");
printf("请输入0返回上级菜单:");
scanf("%d",&n);
do
{
printf("∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n");
printf("请输入选择: ");
scanf("%d",&n);
if(n==0)
{
printf("\n\n感谢您的使用,游戏退出!\n");
exit(0);
}
if(n==2){ printf("\n\n上次的成绩为:%d\n",u);
do
{
printf("输入0返回上级菜单:");
scanf("%d",&n);
system("pause");
visual studio简单好玩的代码
visual studio简单好玩的代码1. 猜数字游戏:```csharpusing System;class Program{static void Main(){int number = 10; // 设定目标数字int attempts = 0; // 猜测次数while (true){Console.Write("猜一个 1 到 20 之间的数字:");int guess = Convert.ToInt32(Console.ReadLine());attempts++;if (guess < number){Console.WriteLine("太小了!再试一次。
");}else if (guess > number){Console.WriteLine("太大了!再试一次。
");}else{Console.WriteLine("恭喜!你猜对了,答案是 " + number + "。
你用了 " + attempts + " 次猜测。
");break;}}}}```这个代码示例创建了一个简单的猜数字游戏。
玩家需要猜测一个 1 到 20 之间的数字,程序会给出提示,直到玩家猜对为止。
2. 计算斐波那契数列:```csharpusing System;class Program{static void Main(){int n = 10; // 计算前 10 个斐波那契数int[] fibonacciNumbers = CalculateFibonacciNumbers(n);Console.WriteLine("斐波那契数列前" + n + "个数字:");for (int i = 0; i < n; i++){Console.WriteLine(fibonacciNumbers[i]);}}static int[] CalculateFibonacciNumbers(int n){int[] fibonacciNumbers = new int[n];fibonacciNumbers[0] = 0;fibonacciNumbers[1] = 1;for (int i = 2; i < n; i++){fibonacciNumbers[i] = fibonacciNumbers[i - 1] + fibonacciNumbers[i- 2];}return fibonacciNumbers;}}```这个代码示例计算了斐波那契数列的前 n 个数字,并将结果打印出来。
猜数字游戏 流程图+源代码
1、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。
玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
如果4A0B,表示游戏成功。
每次猜错都会有提示,如果八次都未猜对,游戏失败,显示正确答案。
按任意键可以返回主菜单。
主要应运数组和循环实现改功能。
(对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
)2、功能要求:本游戏显示这样的菜单:(1)随机产生数据(2)用户输入数据(3)退出游戏(4)游戏成功与否都能返回主菜单测试数据:测试数据:3792第一次输入:12340A2B第二次输入:56780A1B第三次输入:08670A1B第四次输入:97861A1B第五次输入:17942A0B第六次输入:27932A2B第七次输入:37924A0B游戏成功3.解题分析利用主函数调用子函数来实现模块化程序设计。
将游戏的每一个功能设计成一个子函数,通过函数调用完成游戏。
主要分为两大模块:随机模式和用户模式。
猜数字游戏的主要功能,由系统自动产生4个随机排列的整数,或者由用户输入4个不同的整数,并给用户8次机会猜测数字的数值和排列顺序。
如果用户在8次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功。
4. 系统总体框图5.函数名称及功能Int main() 主函数void begin(void) 初始页函数void c_input(char *str)输入并判断函数 void c_game(char *temp) 游戏实现函数 void c_rand() 随机模式函数 void c_printf() 用户模式函数 int judgeA(char *a,char *b) 获取A 函数 int judgeB(char *a,char *b) 获取B 函数1. 函数间调用关系7.流程图(1) void c_rand() 随机模式函数流程图(2) void c_printf() 用户模式函数流程图voidc_input(char *str)int judgeA(char *a,char *b)int judgeB(char *a,char *b)(3)主函数流程图8.运行结果(1)起始页(2)随机模式(3)用户输入模式综合题源程序#include <stdio.h>//预处理指令#include <stdlib.h>//stdlib.h里面定义了五种类型、一些宏和通用工具函数#include <conio.h>//定义数据输入、输出的函数,主要是用户通过按键盘操作,如getch()函数#include <string.h>//定义字符处理函数的头文件#include <time.h>//包含系统时间函数的头文件void begin(void);//初始页void c_game(char *temp);void c_rand();int judgeA(char *a,char *b);//获取Aint judgeB(char *a,char *b);//获取Bchar x[4],y[4];//y[4]是用户输入的数字,x[4]是系统随机产生的数字void c_input(char *str)//输入函数{int i,j;//定义两个变量input:gets(str);//输入一个字符串putchar('\n');//格式控制for(i=0;i<4;i++)//循环输入{if(str[i]<'0'||str[i]>'9')//判断输入是否合法{printf("无效输入,请重新输入:");goto input;//无条件转移语句}for(j=0;j<i;j++){if(str[i]==str[j]){printf("无效输入,请重新输入:");goto input;}}}}void c_game(char *temp)//游戏实现函数{int a,b,i;for(i=0;i<8;i++)//for循环实现八次输入{printf("第%d 次输入:",i+1);c_input(y);a=judgeA(temp,y);//获取ab=judgeB(temp,y);//获取bif(a==4)//游戏成功条件{printf("游戏成功,按下任意键返回主菜单。
C语言编写猜数游戏
C语⾔编写猜数游戏C语⾔写猜数游戏,供⼤家参考,具体内容如下这篇⽂章是给学完并学懂了C语⾔的分⽀(选择和循环)结构的朋友看的。
要做⼀个游戏或者程序先要想好有那些要求,以下是我认为⼀个猜数游戏必带的要求:1、⾃定义猜数范围的起点和终点以及机会次数。
2、⽣成⼀个随机数。
3、如果输⼊猜⼊的数和⽣成的随机数相等,就提⽰猜对了并退出主函数,如果输⼊猜的数⽐⽣成的随机数⼤,就提⽰猜⼤了,如果输⼊猜的数⽐⽣成的随机数⼩,就提⽰猜⼩了,没猜对⼀次就减⼀次机会。
4、如果机会为0了,就提⽰没有机会了并输出随机数。
⾃定义猜数范围的起点和终点以及机会次数先来写⾃定义猜数范围的起点和终点以及机会次数,代码如下:int start,end,opportunity;//范围起点范围终点机会次数printf("请输⼊猜数游戏的范围的起点:");scanf("%d",&start);printf("请输⼊猜数游戏的范围的终点:");scanf("%d",&end);printf("请输⼊猜数游戏的机会次数:");scanf("%d",&opportunity);⽣成⼀个随机数⽣成⼀个随机数可以⽤srand()函数和rand()函数,srand()函数作⽤⼤致是每次运⾏⽣成的随机数都不同。
rand()函数作⽤是⽣成并返回⼀个随机数。
代码如下:int random;//随机数srand((unsigned)time(NULL));//每次运⾏⽣成的随机数都不同random=rand();//默认随机数的范围是0~32767那么如何⽣成我们输⼊的起点和终点那个范围呢,代码如下:int random;//随机数srand((unsigned)time(NULL));//每次运⾏⽣成的随机数都不同random=rand()%(end-start)+end;//⽣成的随机数余(end-start)的结果就是⼀个不⼤于(end-start)的数,最后加上start之后就得到了⼀个不⼩于start并且不⼤于end的数,就可以控制范围了srand()函数srand()函数是随机数发⽣器的初始化函数,函数原型为:void srand(unsigned seed);,所在头⽂件为:#include <stdlib.h>。
猜数字游戏C语言代码
{
flag=1;
break;
}
}
}while(flag==1);
do
{
k++;
a=b=0;
printf("猜猜:");
for(i=0;i<N;i++)
scanf("%d",&arr2[i]); //数组arr2从键盘输入获得初始化
for(i=0;i<N;i++)
do
{
flag=0;//初始值附零
srand((unsigned)time(NULL));//将系统时间作为基础,根据时间产生一个随机数
for(i=0;i<N;i++)
arr1[i]=rand()%10;//将随机数取余数赋值给数组arr1,其中数值不超过10
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)//这2个for循环是泡沫排序法比较数值值是否相等并把标志位,如果相等把flag赋值1,退出循环.说明这里的break也可以省略因为do..while的条件就是falg==1
printf("\n\n*********************************猜数字游戏评语*********************************\n\n");
if(k==1)
printf("…(⊙_⊙;)…哇靠!兄弟,你今天不买彩票真是对不起自己!\n\n");
else if(k<=5)
猜数字游戏C语言课程设计
《C程序设计》课程设计报告(2014—2015学年第2 学期)题目:猜数字游戏学院:机械工程学院班级:机械1310班学号:*名:**指导教师:***时间:起2015年5月25日止2015年5月31日一、课程设计基本信息课程代码:课程名称:计算机基础课程设计课程英文名称: Computer-based Course Design课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群课程面向专业:食品科学与工程学院、机械工程学院、电气与电子工程学院、土建学院、动物科学与营养工程学院、化学与环境工程学院、工商管理类、国际经济与贸易、旅游管理、金融学、行政管理、汉语言文学、英语、护理学、康复治疗专业、生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理课程类型:必修课先修课程:大学计算机基础通识选修课程、程序设计课程学分:1 总学时:1周二、课程设计目标掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
通过综合设计要求达到下列基本技能:1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。
3.系统设计编程简练,可用,功能全面,并有一定的容错能力。
用户界面良好,有较好的输出功能。
在完成课题基本要求后,具有创新型设计,具有一定的实用价值。
4.根据个人的设计调试过程,撰写设计报告。
三、课程设计内容熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。
c语言入门猜数字游戏(解释每行代码)
c语言入门猜数字游戏(解释每行代码)这是一个“猜数字”的小游戏,玩家需要猜出随机生成的数字。
#include <stdio.h> // 1. 引入标准输入输出库#include <stdlib.h> // 2. 引入标准库#include <time.h> // 3. 引入时间相关库int main() { // 4. 主函数开始int num,guess; // 5. 定义两个整型变量: num和guesssrand(time(NULL)); // 6. 初始化随机数种子num = rand() % 100 + 1; // 7. 生成1到100之间的随机整数printf("请猜一个1~100之间的整数:\n"); // 8. 提示玩家输入do { // 9. 进入循环体scanf("%d", &guess); // 10. 接收玩家的输入if (guess > num) { // 11. 判断玩家猜的数是否太大printf("你猜的数字太大了!\n继续猜:\n");} else if (guess < num) { // 12. 判断玩家猜的数是否太小printf("你猜的数字太小了!\n继续猜:\n");}} while (guess != num); // 13. 如果猜错了就继续循环printf("恭喜你,猜对了!\n"); // 14. 玩家猜对了,输出结果return 0; // 15. 返回0表示程序结束}各行代码解释如下:1. 引入`stdio.h`库,提供了输入和输出的函数和符号常量。
2. 引入`stdlib.h`库,提供一些标准函数功能,如内存分配等。
3. 引入`time.h`库,提供了处理时间的函数。
4. `int main()`是程序的起点,主函数开始执行。
猜数字游戏C++代码
cin>>a[0];//确保输入正确 } while(a[1]<0||a[1]>9||a[0]==a[1]){ cout<<"第二个数输入有误,请重新输入"<<endl; cin>>a[1];//确保输入正确 } while(a[2]<0||a[2]>9||a[0]==a[2]||a[1]==a[2]){ cout<<"第三个数输入有误,请重新输入"<<endl; cin>>a[2];//确保输入正确 } while(a[3]<0||a[3]>9||a[0]==a[3]||a[1]==a[3]||a[2]==a[3]){ cout<<"第四个数输入有误,请重新输入"<<endl; cin>>a[3];//确保输入正确 } for(i=0;i<4;i++) if(a[i]==b[i]) ca++;//此循环判断位置和数字是否都正确 if(a[0]==b[1]||a[0]==b[2]||a[0]==b[3]) cb++; if(a[1]==b[0]||a[1]==b[2]||a[1]==b[3]) cb++; if(a[2]==b[0]||a[2]==b[1]||a[2]==b[3]) cb++; if(a[3]==b[0]||a[3]==b[1]||a[3]==b[2]) cb++; /*以上 4 个 if 判断数字正确但位置不对的数*/ for(i=0;i<4;i++) cout<<a[i]; cout<<" "; cout<<"A"<<ca<<"B"<<cb<<endl; } /*以上 for 循环进行提示每次猜的结果*/ if(d!=0) continue; cout<<"很遗憾你失败了"<<endl;//当 10 次都没猜对提示失败 cout<<"答案为:"; for(i=0;i<4;i++) cout<<b[i];//输出正确的答案 cout<<endl; cout<<"是否再来一局,(Y/N)"; cout<<endl; chong=getch(); if(chong=='N'||chong=='n') exit(1); if(chong=='Y'||chong=='y') continue; } }
ai猜数c语言代码
ai猜数c语言代码AI猜数C语言代码引言:AI(人工智能)作为一项领先的技术,正逐渐渗透到我们日常生活的方方面面。
其中,AI猜数是一项非常有趣且实用的功能。
在本文中,我们将介绍如何使用C语言编写一个简单的AI猜数程序。
背景:AI猜数是一种基于算法和逻辑的程序,它可以通过一系列问题和判断,来猜测用户所想的数字。
这种程序往往使用二分查找的思想,通过每次排除一半的数字来逼近正确答案。
代码实现:下面是一个简单的AI猜数程序的C语言代码实现:```c#include <stdio.h>int main() {int low = 1, high = 100, guess;char answer;printf("请你想好一个1到100之间的数字,然后按下回车键。
\n");getchar();do {guess = (low + high) / 2;printf("我猜这个数字是%d,对吗?(y/n)\n", guess); getchar();printf("这个数字是大了还是小了?(b/s)\n");scanf("%c", &answer);getchar();if (answer == 'b') {high = guess - 1;} else if (answer == 's') {low = guess + 1;}} while (answer != 'y');printf("太棒了,我猜对了!\n");return 0;}```代码解析:我们定义了两个变量low和high,分别表示猜测的数字的范围。
然后,使用getchar()函数等待用户按下回车键,表示已经想好了一个数字。
接下来,通过循环来进行猜数操作。
在每一轮循环中,我们使用二分查找的思想来猜测数字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);