猜数字游戏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语言代码例子

有趣的c语言代码例子
1.猜数字游戏:编写程序生成一个介于1到100之间的随机数,用户输入猜测的数字直到猜对为止,程序会给出猜测数字相对于答案的大小关系提示(例如“猜测数字太大”或“猜测数字太小”)。

2. 打地鼠游戏:在屏幕上生成随机的地鼠图案,用户用鼠标点击击打地鼠以获得分数,随着时间的推移地鼠速度逐渐加快。

3. 贪吃蛇游戏:编写程序生成一个贪吃蛇,蛇头可以用键盘控制移动,当蛇吃到食物时身体长度增加,当蛇头碰到墙壁或自己的身体时游戏结束。

4. 数独游戏:生成一个数独谜题,用户通过键盘输入数字来填充空白格子,当谜题填写完整且符合数独规则时游戏结束。

5. 神经网络:使用C语言实现一个简单的神经网络,可以用来识别手写数字或其他模式识别任务。

6. 数据结构:实现一个栈或队列数据结构,可以用来解决各种实际问题。

7. 图像处理:使用C语言读取图像文件并进行简单的处理,例如灰度化、边缘检测或图像滤波等。

8. 加密解密:实现一个简单的加密解密算法,例如Caesar密码或RSA加密算法。

9. 排序算法:实现常见的排序算法,例如冒泡排序、插入排序或快速排序等。

10. 计算机模拟:使用C语言模拟各种实际问题,例如天气预报、
股票交易或人口统计等。

Python小游戏代码

Python小游戏代码

Python5个小游戏代码1. 猜数字游戏import randomdef guess_number():random_number = random.randint(1, 100)attempts = 0while True:user_guess = int(input("请输入一个1到100之间的数字:"))attempts += 1if user_guess > random_number:print("太大了,请再试一次!")elif user_guess < random_number:print("太小了,请再试一次!")else:print(f"恭喜你,猜对了!你用了{attempts}次尝试。

")breakguess_number()这个猜数字游戏的规则很简单,程序随机生成一个1到100之间的数字,然后玩家通过输入猜测的数字来与随机数进行比较。

如果猜测的数字大于或小于随机数,程序会给出相应的提示。

直到玩家猜对为止,程序会显示恭喜消息,并告诉玩家猜对所用的尝试次数。

2. 石头、剪刀、布游戏import randomdef rock_paper_scissors():choices = ['石头', '剪刀', '布']while True:user_choice = input("请选择(石头、剪刀、布):")if user_choice not in choices:print("无效的选择,请重新输入!")continuecomputer_choice = random.choice(choices)print(f"你选择了:{user_choice}")print(f"电脑选择了:{computer_choice}")if user_choice == computer_choice:print("平局!")elif (user_choice == '石头' and computer_choice == '剪刀') or \(user_choice == '剪刀' and computer_choice == '布') or \(user_choice == '布' and computer_choice == '石头'):print("恭喜你,你赢了!")else:print("很遗憾,你输了!")play_again = input("再玩一局?(是/否)")if play_again.lower() != "是" and play_again.lower() != "yes":print("游戏结束。

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

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

c语言课程设计猜数字游戏一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,通过编写猜数字游戏程序,培养学生的编程思维和实际操作能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。

–了解函数的定义和调用。

–学习使用循环和条件语句进行程序控制。

2.技能目标:–能够使用C语言编写简单的程序。

–能够运用循环和条件语句实现猜数字游戏的核心功能。

–能够调试和优化程序,提高游戏的体验性。

3.情感态度价值观目标:–培养学生的创新意识和团队合作精神。

–培养学生对编程的兴趣和热情,提高学生的信息素养。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、循环和条件语句。

具体安排如下:1.第一课时:C语言概述和基本语法。

–介绍C语言的历史和发展。

–学习C语言的基本语法,如变量声明、数据类型、运算符等。

2.第二课时:函数的定义和调用。

–学习函数的定义和声明。

–掌握函数的调用方式和参数传递。

3.第三课时:循环和条件语句。

–学习循环语句的原理和用法,如for循环、while循环等。

–学习条件语句的原理和用法,如if语句、switch语句等。

4.第四课时:猜数字游戏设计与实现。

–分析猜数字游戏的需求和逻辑。

–使用C语言编写猜数字游戏的程序。

–调试和优化程序,提高游戏的体验性。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据类型、函数、循环和条件语句等知识点。

2.案例分析法:通过分析典型的猜数字游戏案例,引导学生掌握游戏设计的原理和方法。

3.实验法:让学生亲自动手编写和调试猜数字游戏程序,提高学生的实际操作能力。

四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C程序设计》等相关教材,为学生提供系统的理论知识。

2.参考书:推荐《C语言编程实践》等参考书,丰富学生的知识体系。

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()函数,重新排序的到最后的有顺序的一组数据。

课程设计 猜数字游戏

课程设计 猜数字游戏

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

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

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

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

目录第一章绪论 (6)第一节项目背景 (6)第二节本课题所做的工作 (6)第三章程序设计 (8)第一节程序的功能 (8)第二节输入输出的要求 (8)第三节程序模块 (8)第一条模块组成 (8)第二条层次结构 (9)第三条模块调用 (10)第四章分析 (11)第一条模块解释与功能 (11)第五章调试 (15)第一节菜单测试 (15)第二节游戏测试 (16)第一条在自定义中 (16)第二条在随机游戏中 (17)第六章总结 (19)第七章附录 (20)第一节附录A 源程序 (20)第二节附录B 参考文献 (30)课程设计评分表 (31)第一章绪论第一节项目背景C语言是一种优秀的程序设计语言,其功能丰富,表达能力强,程序执行效率高,可移植性好;C语言既有高级计算机程序设计语言的特点,同时又具有部分汇编语言的特点,因而C语言具有较强的系统处理能力。

C语言程序设计(猜数字游戏)报告

C语言程序设计(猜数字游戏)报告

《高级语言程序设计》课程设计题目:猜数字游戏班级:09软件工程R3学生姓名:谢泽雄学生学号:200931000622指导老师:姚金涛提交时间:2010年5月29日华南农业大学信息(软件)学院《高级语言程序设计》课程设计评分表题目猜数字游戏专业班级09软件工程R3提交日期2010年05月29日小组成员学号姓名完成情况成绩(指导老师填写)组长无无组员200931000622谢泽雄组员小组评分表评分项目分数1.实现情况(15):完成课程设计要求的情况2.系统分析(10):对系统的理解及分析的深入程度。

3.系统设计(20):总体设计、具体设计、数据结构设计等。

4.程序设计(30):面向对象程序设计方法与编程工具掌握水平。

5.界面设计(15):界面美观程度、操作方式友好程度等。

6.论文撰写(10):论文撰写的规范性、合理性等等。

小组总成绩:教师签名日期目录一、猜数字游戏分析。

41.游戏概述。

42.系统运行环境。

43.功能需求描述。

4二、总体设计。

51.开发和设计的总体思想。

52.程序模块结构图。

53.模块设计。

54.程序流程描述。

65.界面设计。

76.数据结构设计。

12三、详细设计。

131.文件及函数组成。

132.函数设计。

14四.程序代码。

171.start.h。

172.start.c。

193.mianzone.c。

254.game zone.c。

325.refreshline.c。

376.reset.c。

407.print.c。

408.count_num.c。

489.intset–del.c。

4910.imageline.c。

49五.运行结果。

50六、调试分析。

511.情况1。

512.情况2。

513.情况3。

514.情况4。

52七、总结。

52一、猜数字游戏分析在《猜数字游戏》分析环节中,会对该游戏开发的意图、应用目标、作用范围和有关该软件开发的背景材料进行详细的分析。

《猜数字游戏》作为一个用来进行娱乐、消遣的应用软件,在对其进行需求分析的过程中,需要充分考虑游戏的可用性和娱乐性,联系实际生活,从而得到合理的需求分析的结论。

c语言编程-猜数字游戏

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语言代码

猜数字游戏C语言代码
count=4;
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");

C语言编写猜数游戏

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语言入门猜数字游戏(解释每行代码)

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++代码

猜数字游戏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; } }

for语句——猜数字

for语句——猜数字

for语句——猜数字#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#include<time.h>int main01(){/for(表达式1;表达式2;表达式3):先执⾏⼀次表达式1,判别表达式2是否满⾜条件,若值为真,满⾜循环条件,则执⾏循环体内的语句,然后再执⾏表达式3,进⼊第2次循环......,直到判别式的值为假,则终⽌for循环。

c89库int i=0;不定义在for循环⾥⾯,⽽是单独拿出来定义*/ for(int i=0;i<10;i++)//基于c99库 { printf("%d\n",i); } return EXIT_SUCCESS;}int main02(){ int i=0;//for语句中的表达式1//死循环:while (1) {}i++;for (; ;) {} i++ for(; ;) { if(i>=0)//for语句中的表达式2 { break;//在循环语句中,出现break表⽰结束循环 } printf("%d\n",i); i++;//for语句中的表达式3 } return 0;}int main03(){/*产⽣随机数:1.导⼊头⽂件time.h,stdlib.h。

(为了防⽌随机数每次重复,常常使⽤系统时间来初始化,即使⽤ time函数来获得系统时间,然后将time_t型数据转化为(unsigned)型再传给srand函数。

2.添加随机数种⼦,3.获取随机数*/ srand((unsigned int) time (NULL));//每次随机数不⼀样 for(int i=0;i<10;i++) { int value=rand () % 100 ;//0—9 printf("%d\n",value); } return 0; }//猜数字:通过程序随机得到⼀个1—100之内的数,通过输⼊⼀个数与它对应,对应则结束循环,否则继续循环int main04(){ srand((unsigned int)time(NULL)); int value = rand() % 100;//0-99 int num; for (;;) { printf("请输⼊数字:\n"); scanf("%d", &num); if (value > num) { printf("您输⼊的数太⼩了\n"); } else if (value < num) { printf("您输⼊的数太⼤了\n"); } else { printf("恭喜您,猜对了,奥利给\n"); break;//出⼝ } } return 0;}。

[题解]LeetCode299.猜数字游戏(C++)

[题解]LeetCode299.猜数字游戏(C++)

[题解]LeetCode299.猜数字游戏(C++)题⽬你在和朋友⼀起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出⼀个秘密数字,并请朋友猜这个数字是多少。

朋友每猜测⼀次,你就会给他⼀个包含下述信息的提⽰:猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls", 公⽜),有多少位属于数字猜对了但是位置不对(称为 "Cows", 奶⽜)。

也就是说,这次猜测中有多少位⾮公⽜数字可以通过重新排列转换成公⽜数字。

给你⼀个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提⽰。

提⽰的格式为 "xAyB" ,x 是公⽜个数, y 是奶⽜个数,A 表⽰公⽜,B 表⽰奶⽜。

请注意秘密数字和朋友猜测的数字都可能含有重复数字。

⽰例 1:输⼊: secret = "1807", guess = "7810"输出: "1A3B"解释: 数字和位置都对(公⽜)⽤ '|' 连接,数字猜对位置不对(奶⽜)的采⽤斜体加粗标识。

"1807"|"7810"⽰例 2:输⼊: secret = "1123", guess = "0111"输出: "1A1B"解释: 数字和位置都对(公⽜)⽤ '|' 连接,数字猜对位置不对(奶⽜)的采⽤斜体加粗标识。

"1123" "1123"| or |"0111" "0111"注意,两个不匹配的 1 中,只有⼀个会算作奶⽜(数字猜对位置不对)。

通过重新排列⾮公⽜数字,其中仅有⼀个 1 可以成为公⽜数字。

⽰例 3:输⼊:secret = "1", guess = "0"输出:"0A0B"⽰例 4:输⼊:secret = "1", guess = "1"输出:"1A0B"提⽰:1 <= secret.length, guess.length <= 1000secret.length == guess.lengthsecret 和 guess 仅由数字组成思路遍历字符串,统计数字和位置都猜对的位置,即公⽜数x,同时记录两个字符串其他位置下的数字的个数,母⽜数是两个字符串位置不同但数字相同的数字,只需要统计两个字符串中0到9这些数字出现次数的较⼩值之和即可。

c#猜数字

c#猜数字

首先新建一个windows应用程序我们需要一个button 用作开始按钮一个timer控件两个label。

Label1的text我们设为“计时:”label2的text为空用来显示时间timer 的Interval 属相为1000using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace caishuzi{public partial class Form1 : Form{public static int time =0;public static int n;//产生随机数public static int y = 0;//次数public Form1(){InitializeComponent();}private void bt_begin_Click(object sender, EventArgs e){//RemoveControl();bt_begin.Enabled = false;timer1.Enabled = true;Random a = new Random(System.DateTime.Now.Second);n= a.Next(100);MessageBox.Show(n.ToString());int x = 18;int y = 66;for (int i = 0; i < 100; i++){Button bt = new Button();bt.Text = (i + 1).ToString(); = "bt_" + (i + 1).ToString(); ;bt.Width = 40;bt.Height = 40;bt.Location = new Point(x,y);bt.Click+=new EventHandler(bt_Click);//bt.BackColor = Color.Purple;x += 41;if ((i + 1) % 10 == 0){x = 18;y += 41;}Controls.Add(bt);}}private void bt_Click(object sender, EventArgs e){y++;((Button)sender).BackColor = Color.PowderBlue;if (Convert.ToInt32(((Button)sender).Text) > n){((Button)sender).Text = "大";}else if (Convert.ToInt32(((Button)sender).Text) < n){((Button)sender).Text = "小";}else{MessageBox.Show("共2猜测了"+y+"次", "正确");}}private void timer1_Tick(object sender, EventArgs e){time++;label2.Text = time.ToString() + "秒?";}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
while(a[0]<0||a[0]>9){
cout<<"第一个数输入有误,请重新输入"<<endl;
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++;
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<ctype.h>
#include"windows.h"
void main()
{using namespace std;
int a[4],b[4];int i,j;char chong='Y';int d;
}
/*以上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;
}
}
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;
if(ca==4){
cout<<"恭喜你获胜了"<<endl;//当ca==4时全部猜对
cout<<"是否再来一局,(Y/N)"<<endl;
chong=getch();//Y/N输入以便继续
if(chong=='N'||chong=='n') exit(1);
if(chong=='Y'||chong=='y'){d=1;break;}
a[i]=10;
b[i]=10;//初始化AB数组
}
srand((unsigned)GetTickCount());
for(i=0;i<4;i++)
b[i]=rand()%10;//产生0-9的随机数
while(b[0]==b[1])
b[1]=rand()%10;//确保b[0]和b[1]的数不同
while(b[0]==b[2]||b[1]==b[2])
while(chong=='Y'||chong=='y'){//确保可以无数次游戏直到不选“Y”退出
system("cls");
cout<<"猜数字游戏(输入-1中途退出)"<<endl;//可以让游戏中途退出
d=0;//d为控制游戏最终判断是否成功及使循环连续的开关
for(i=0;i<4;i++){
}//游戏胜利返回1
if(d!=0) break;
ca=0;cb=0;//初始化提示"AB"
cout<<"还有"<<j<<"次机会:请输入0-9的四个数输入时以空格隔开"<<endl;
for(i=0;i<4;i++) {
cin>>a[i];//初始化输入四个数
if(a[i]==-1) exit(1);
b[2]=rand()%10;//确保b[2]和b[0]、b[1]的数不同
while(b[0]==b[3]||b[1]==b[3]||b[2]==b[3])
b[3]=rand()%10;//确保b[3]和b[0]、b[1]、b[2]的数不同
int ca=0,cb;
forห้องสมุดไป่ตู้j=10;j>0;j--){//游戏只有10次机会
相关文档
最新文档