猜数字实验报告
- 格式:doc
- 大小:123.16 KB
- 文档页数:13
第1篇一、实验背景猜数字游戏是一种经典的编程练习,旨在通过编写程序实现一个计算机与用户之间进行数字猜猜看的游戏。
该游戏可以锻炼编程者的逻辑思维能力、程序设计能力和调试能力。
本次实验以Java语言为基础,通过实现一个猜数字游戏,旨在掌握面向对象编程思想,提高编程技能。
二、实验目的1. 通过编写Java应用程序,实现猜数字游戏,加深对面向对象编程思想的理解。
2. 练习使用Java语言编写程序,提高编程技能。
3. 提高调试程序的能力,养成良好的编程习惯。
4. 增强对程序设计整体思路的把握。
三、实验内容1. 游戏规则- 计算机随机生成一个1到100之间的整数。
- 用户有若干次猜测机会,每次输入一个数字。
- 如果用户猜中数字,则游戏结束,并显示“恭喜你,猜对了!”- 如果用户猜大了或猜小了,则程序提示“猜大了”或“猜小了”,并继续游戏。
- 如果用户猜测次数用尽,则游戏结束,并显示“很遗憾,你没有猜对数字。
”2. 实验要求- 使用Java语言实现猜数字游戏。
- 使用面向对象编程思想,设计合理的类和接口。
- 代码结构清晰,易于阅读和维护。
- 具备良好的调试和错误处理能力。
四、实验步骤1. 创建一个名为“GuessNumberGame”的Java项目。
2. 创建一个名为“Game”的类,实现猜数字游戏的主要功能。
3. 在“Game”类中,定义一个方法生成随机数。
4. 在“Game”类中,定义一个方法用于接收用户输入,并进行判断。
5. 在“Game”类中,定义一个方法用于输出游戏提示信息。
6. 创建一个名为“Main”的类,作为程序的入口。
7. 在“Main”类中,创建“Game”对象,并调用其方法开始游戏。
五、实验结果经过一番努力,我们成功实现了猜数字游戏。
以下是实验结果:1. 运行程序后,会显示一个欢迎界面。
2. 用户输入数字后,程序会根据输入的数字与随机数的比较结果给出提示。
3. 用户猜中数字或猜测次数用尽时,游戏结束,并显示相应的提示信息。
猜数实验报告猜数实验报告引言:猜数实验是一种常见的心理实验,在实验中,被试者需要根据一系列提示和线索来猜测一个特定的数字。
这项实验旨在探究人类思维过程中的推理能力、逻辑思维和决策行为。
本报告将对我进行的一次猜数实验进行详细描述和分析。
实验设计:在本次实验中,我作为被试者,需要猜测一个介于1到100之间的整数。
实验设定了10轮,每轮实验都会给出一个提示,以帮助我缩小猜测范围。
每次猜测后,实验者会告知我猜测的数字是大了还是小了,直到我猜测出正确答案或达到最大猜测次数为止。
实验过程:第一轮实验开始时,我没有任何线索可供参考,只能凭直觉猜测。
我选择了50作为我的第一次猜测,但结果显示我猜得太大了。
通过这个提示,我意识到正确答案可能更接近1而不是100。
于是,我在第二次猜测时选择了25,但结果仍然是猜大了。
这个过程一直持续到第五次猜测,当我猜测到10时,实验者告诉我猜对了。
通过这个过程,我逐渐缩小了猜测的范围,从而更接近正确答案。
在接下来的几轮实验中,我开始注意到每个提示的关键词和数字。
例如,在第二轮实验中,提示是“答案大于25”,这让我意识到正确答案可能在25和50之间。
通过这种方式,我能够更有针对性地猜测,并在更少的次数内找到正确答案。
然而,有时候提示并不总是直接指向正确答案,而是提供了一些间接线索。
这就需要我运用逻辑思维和推理能力来解读和利用这些线索。
实验结果:通过10轮的猜数实验,我总共猜测了45次才找到正确答案。
这个结果让我意识到我在推理和决策方面还有很大的提升空间。
在前几轮实验中,我没有充分利用提示所提供的信息,而是过于依赖直觉和随机猜测。
然而,随着实验的进行,我逐渐学会了如何运用线索和提示来缩小猜测范围,从而更有效地找到正确答案。
实验结论:通过这次猜数实验,我深刻认识到了逻辑思维和推理能力在解决问题中的重要性。
在现实生活中,我们经常需要根据有限的信息做出决策和推理。
这些决策和推理的质量直接影响到我们的判断准确性和问题解决能力。
一、实验背景随着信息技术的飞速发展,编程已经成为一种重要的技能。
为了提高编程能力和解决问题的能力,我们选择了一个具有挑战性的数字游戏作为实验项目。
本实验旨在通过设计、实现和测试数字游戏,提高我们的编程水平,同时加深对算法和数据结构的理解。
二、实验目的1. 学习并掌握编程语言的基本语法和编程规范。
2. 熟悉算法设计的基本方法,提高算法思维能力。
3. 了解并运用数据结构,提高数据结构的应用能力。
4. 通过实际项目,提高编程实践能力。
三、实验内容本次实验所设计的数字游戏为一个经典的猜数字游戏。
游戏规则如下:1. 计算机随机生成一个1到100之间的整数。
2. 玩家需要在有限次机会内猜出这个整数。
3. 每次猜错,系统会提示玩家猜测的数字是大了还是小了。
四、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm五、实验过程1. 设计游戏规则和算法在本次实验中,我们采用随机数生成器生成一个1到100之间的整数,玩家通过输入猜测的数字与系统进行交互。
系统根据玩家的猜测结果,给出提示信息。
以下是游戏的主要算法:(1)初始化:生成一个1到100之间的随机整数作为目标数。
(2)输入:玩家输入一个1到100之间的整数。
(3)判断:如果玩家输入的数字与目标数相等,则游戏结束,并输出“恭喜你,猜对了!”;如果玩家输入的数字小于目标数,则输出“猜大了”;如果玩家输入的数字大于目标数,则输出“猜小了”。
(4)重复步骤2和3,直到玩家猜对为止。
2. 编写代码根据以上算法,我们编写了以下Python代码:```pythonimport randomdef guess_number_game():target_number = random.randint(1, 100)try:while True:guess = int(input("请输入一个1到100之间的整数:"))if guess == target_number:print("恭喜你,猜对了!")breakelif guess < target_number:print("猜大了")else:print("猜小了")except ValueError:print("输入错误,请输入一个整数!")guess_number_game()```3. 测试代码为了验证代码的正确性,我们进行了多次测试。
java猜数字实验报告
《Java猜数字实验报告》
在本次实验中,我们利用Java编程语言实现了一个猜数字的小游戏,并进行了
相应的实验和测试。
在游戏中,计算机会随机生成一个数字,玩家需要通过输
入不同的数字来猜测正确的数字,直到猜中为止。
首先,我们使用Java编程语言编写了游戏的代码,并进行了调试和测试。
通过
编写代码,我们实现了游戏的基本功能,包括生成随机数字、接受玩家输入、
判断输入是否正确、给出相应的提示等。
经过多次的测试和修改,我们确保游
戏的逻辑和功能都能够正常运行。
其次,我们进行了游戏的实际测试。
我们邀请了一些志愿者来参与游戏,他们
在游戏中不断输入数字进行猜测,并观察游戏的表现和反馈。
通过实际测试,
我们发现游戏的交互性和趣味性较高,参与者对游戏的体验也非常积极。
最后,我们对游戏进行了性能测试。
我们模拟了大量的游戏场景,并观察了游
戏在不同情况下的表现。
通过性能测试,我们发现游戏在处理大量数据和用户
输入时依然能够保持流畅和稳定,没有出现明显的卡顿和延迟。
综上所述,通过本次实验,我们成功地使用Java编程语言实现了一个猜数字的
小游戏,并进行了相应的实验和测试。
游戏的功能和性能都得到了充分的验证,证明了我们的设计和实现是成功的。
希望通过这次实验,我们能够更深入地理
解和掌握Java编程语言的应用和特性。
一、实验目的本次实验旨在通过编写数字游戏程序,掌握Java编程语言的基本语法和面向对象编程思想,提高编程能力,同时锻炼逻辑思维和调试能力。
通过实验,加深对Java语言的理解,培养良好的编程习惯。
二、实验内容本次实验设计一款数字猜谜游戏,游戏规则如下:1. 系统随机生成一个1-100之间的整数作为谜底。
2. 玩家输入一个数字,系统判断该数字与谜底的大小关系。
3. 系统给出提示,告知玩家输入的数字是大了、小了还是猜中了。
4. 玩家继续猜测,直到猜中谜底为止。
5. 猜中谜底后,显示玩家猜测的次数,并询问是否继续游戏。
三、实验环境1. 软件:JDK 1.8,Eclipse IDE2. 操作系统:Windows 10四、实验步骤1. 创建一个名为“DigitalGame”的Java项目,并在项目中创建一个名为“Main”的类。
2. 在“Main”类中,编写以下代码:```javaimport java.util.Random;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Random random = new Random();int secretNumber = random.nextInt(100) + 1; // 生成1-100之间的随机数int guessNumber;int count = 0;while (true) {System.out.println("请输入一个1-100之间的数字:");guessNumber = scanner.nextInt();count++;if (guessNumber > secretNumber) {System.out.println("大了,再试一次!");} else if (guessNumber < secretNumber) {System.out.println("小了,再试一次!");} else {System.out.println("恭喜你,猜对了!你共猜了" + count + "次。
猜数字游戏实验报告猜数字游戏实验报告引言:猜数字游戏是一种经典的思维训练游戏,通过猜测和推理来寻找隐藏的数字。
在这个实验中,我们将探索参与者在猜数字游戏中的表现,并分析他们的策略和思维模式。
实验设计:我们邀请了50名参与者,他们年龄跨度从10岁到60岁不等。
实验分为两个阶段:训练和测试。
在训练阶段,参与者被要求猜测一个范围在1到100之间的数字,直到他们猜中为止。
在测试阶段,参与者将面对更复杂的数字范围和条件。
结果:在训练阶段,我们观察到参与者的猜测次数逐渐减少,他们开始学会根据之前的猜测结果来推测正确答案。
这表明参与者在游戏中逐渐形成了一种策略,并且能够将其应用于后续的猜测中。
此外,我们还注意到不同年龄组的参与者在训练阶段的表现存在差异。
年龄较小的参与者通常需要更多的猜测次数才能找到正确答案,而年龄较大的参与者则表现出更高的准确性和更快的学习能力。
在测试阶段,我们引入了更多的变量和条件,如时间限制和错误惩罚。
参与者需要在规定的时间内尽快猜出数字,并且每次错误猜测都会受到一定的惩罚。
这一阶段的结果显示,参与者的表现受到了这些额外条件的影响。
一些参与者表现出更高的压力耐受能力和快速决策能力,而另一些参与者则更加谨慎和保守。
讨论:通过这个实验,我们可以看到参与者在猜数字游戏中的表现与他们的年龄、经验和个人特质有关。
年龄较小的参与者可能需要更多的时间和猜测次数来找到正确答案,而年龄较大的参与者则表现出更高的准确性和学习能力。
此外,一些参与者在面对压力和时间限制时表现出更好的决策能力,而另一些参与者则更加谨慎和保守。
这个实验还揭示了猜数字游戏对参与者思维能力的训练作用。
通过不断的尝试和推理,参与者能够学会利用之前的信息来指导后续的猜测,这是一种重要的思维技能。
此外,实验中引入的时间限制和错误惩罚也提醒了参与者在决策过程中需要权衡速度和准确性。
结论:猜数字游戏是一种有趣且具有思维训练作用的游戏。
通过这个实验,我们发现参与者的表现受到年龄、经验和个人特质的影响。
题目: 简易猜数字游戏机的设计与实现姓名学院专业班级学号班内序号一、设计课题的任务要求基本要求:1、游戏规则:通常由两个人玩,一方出数字,另一方猜。
出数字的人要想好一个没有重复数字的 4 位数,不能让猜的人知道。
2、数字设置:通过 4*4 键盘进行 4 位数字输入,在数码管(DISP0~DISP3)上显示当前所输入的数字。
通过设置确定键(BTN1 键)进行锁定,此时数码管上的数值消失,同时用点阵开始倒计时,即:初始状态点阵全亮,然后从右下角开始,由右到左、由下到上逐点逐排依次熄灭,间隔时间为 1s,共计 64s。
3、猜数字:可以通过 4*4 键盘进行 4 位数字输入进行猜数字,且每输入一位数字在数码管(DISP0~DISP3)上显示当前所输入的数字,按确定键(BTN2 键)进行确认,此时要根据输入的这组数字给出几 A 几 B,其中:A前面的数字表示位置正确的数的个数,用DISP5显示B前的数字表示数字正确而位置不对的数的个数,用DISP4显示如正确答案为 2134,而猜的人猜 5314,则是1A2B,其中有一个4的位置对了,记为1A,而1和3这三个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B 接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。
4、若数字正确则显示猜数字成功,点阵显示“☺”笑脸;若输入数字错误系统仍然处于猜数字状态,点阵显示“X”,并用蜂鸣器或 led 闪烁报警。
5、若到点阵全灭时(64s 结束)仍未猜出正确数字,游戏失败,点阵显示“囧”。
6、设置游戏机开关。
提高要求:1、若数字正确则显示猜数字成功,用蜂鸣器播放一段乐曲。
2、随机产生数字,并不在数码管上显示,进行猜数字游戏,用点阵进行 128s 计时,即点阵轮询熄灭两次,其他要求同基本功能3、4 和 5。
3、自拟其他功能。
二、系统设计设计思路:首先是状态机的设定,设定了5个状态,分别是idle、s1、s2、s3和over。
南华大学计算机科学与技术学院实验报告(2013 ~2014 学年度第一学期)高级语言程序设计I 课程名称猜数游戏实验名称姓名曲永波学号20130030523专业电气信息类班级计算机类05班地点计算机实验室教师陈星1.实验目的及要求运用CB编写一个程序,由计算机“想”一个1~100之间的数,正确提示已猜对,错误提示太大还是太小2.实验步骤思考需要使用那些函数,当输入非法字符时要怎么办,输入随机数种子以确保不会每一次计算机“想”的数都是同一个,加入计数器,计算共使用的次数。
3.实验内容#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int magic; //计算机想的数int guess; //玩家猜的数int counter; //记录玩家猜的次数char replay; //玩家输入的答案srand (time(NULL));do{magic=rand()%100+1;counter=0;do{printf("被选招的少年啊,猜个数吧:");scanf("%d",&guess);counter++;if(guess>magic){printf("太大了,少年\n");}else if (guess<magic){printf("太小了,少年\n");}else{printf("Right!\n");}}while (guess!=magic&&counter<10); //猜错且次数不超过10次时继续猜printf("counter=%d\n",counter);printf("Do you want to continue(Y/N or y/n)");scanf (" %c",&replay); //%c前面有一个空格}while ((replay=='Y')||(replay=='y'));printf("游戏结束!\n");}4.实验结果5. 实验总结分析通过这个实验,熟悉了循环结构和if条件语句,并通过多次修改程序加强了程序的健壮性。
猜数字游戏实验报告猜数字游戏实验报告引言:猜数字游戏是一种经典的智力游戏,它不仅能够锻炼我们的逻辑思维能力,还能够培养我们的耐心和观察力。
为了进一步了解这个游戏的特点和玩法,我们进行了一次猜数字游戏的实验。
本报告将详细介绍实验的设计和结果,并对实验结果进行分析和总结。
实验设计:我们邀请了30名志愿者参与了这次实验,他们年龄跨度在18岁到30岁之间,男女比例大致相等。
实验分为两个阶段,第一阶段是单人模式,每个参与者将独立进行游戏;第二阶段是团队模式,参与者将分成小组进行游戏。
实验过程:在单人模式中,每个参与者会面对一台电脑,屏幕上会显示一个由4个数字组成的随机数。
参与者需要通过猜测来猜出这个随机数,并在屏幕上输入自己的猜测。
电脑会根据猜测的结果给予相应的反馈,直到参与者猜中为止。
我们记录了每个参与者猜测的次数和所花费的时间。
在团队模式中,我们将参与者分成10个小组,每个小组有3名参与者。
每个小组面对的游戏规则与单人模式相同,但参与者可以相互交流和讨论,以便更快地找到正确答案。
同样地,我们记录了每个小组猜测的次数和所花费的时间。
实验结果:在单人模式中,参与者平均猜测次数为6次,平均花费时间为2分钟。
其中最快的参与者仅用了3次猜测和1分钟的时间就猜中了正确答案,而最慢的参与者则用了10次猜测和4分钟的时间才猜中。
在团队模式中,参与者平均猜测次数为4次,平均花费时间为1分钟。
最快的小组仅用了2次猜测和30秒的时间就猜中了正确答案,而最慢的小组则用了8次猜测和2分钟的时间才猜中。
分析与总结:通过对实验结果的分析,我们可以得出以下结论:1. 团队模式比单人模式更有效。
在团队模式中,参与者可以相互交流和讨论,从而更快地找到正确答案。
这说明合作和团队精神对于解决问题是非常重要的。
2. 猜数字游戏能够锻炼逻辑思维能力。
通过不断尝试和分析反馈结果,参与者能够逐渐缩小答案的范围,从而更有可能猜中正确答案。
3. 游戏的难度可以适当调整。
java猜数字实验报告Java猜数字实验报告引言:猜数字游戏是一种经典的游戏,通过猜测来猜出一个随机生成的数字。
在这个实验中,我们使用Java编程语言来实现一个简单的猜数字游戏,并通过实验来验证其功能和效果。
实验目的:本实验的目的是通过编写一个Java程序来实现猜数字游戏,并测试其在不同情况下的表现和效果。
我们将通过实验来验证程序的正确性和可靠性,并评估其易用性和用户体验。
实验过程:1. 设计游戏规则:在猜数字游戏中,计算机会生成一个随机数,玩家需要通过输入猜测的数字来猜出这个随机数。
计算机会根据玩家的猜测结果给出相应的提示,直到玩家猜中为止。
2. 编写Java代码:我们使用Java编程语言来实现猜数字游戏。
首先,我们需要生成一个随机数,可以使用Java的Random类来实现。
然后,我们需要设计一个循环,让玩家可以多次猜测,直到猜中为止。
在每次猜测后,程序会根据玩家的猜测结果给出相应的提示,比如“猜的数字太大了”或“猜的数字太小了”。
最后,当玩家猜中数字时,程序会给出祝贺的提示,并显示玩家猜测的次数。
3. 编译和运行程序:在编写完Java代码后,我们需要使用Java编译器将代码编译成可执行文件。
然后,我们可以在命令行或集成开发环境中运行程序,开始进行猜数字游戏。
实验结果:经过实验,我们发现Java猜数字游戏的功能和效果良好。
在不同情况下,程序能够正确生成随机数,并根据玩家的猜测结果给出相应的提示。
同时,程序还记录了玩家猜测的次数,方便玩家了解自己的表现。
实验总结:通过这个实验,我们学习了如何使用Java编程语言来实现一个简单的猜数字游戏。
我们了解了随机数的生成和输入输出的操作,同时也加深了对循环和条件判断语句的理解。
通过实验,我们还发现了一些可以改进的地方,比如增加游戏难度、美化用户界面等。
总之,Java猜数字实验是一个有趣且具有一定挑战性的实验。
通过这个实验,我们不仅学习了Java编程语言的基础知识,还锻炼了编程思维和逻辑推理能力。
数学实验报告(一)【任务描述】用Matlab编写一个程序,来实现猜数游戏。
首先由计算机产生一个[1,100]之间的数,然后由用户猜测所产生的这个数。
如果猜测的数大于产生的数,则显示“high”,小于则显示”low”,等于则显示“you win!”,同时退出游戏。
用户最多有7次机会。
【问题分析】首先要由计算机随机产生数,unidrnd(100)表示的就是随机产生[1,100]的整数;由于用户每次输入数据后都有3种可能的结果,因此要采用多项选择判断结构;要实现“用户最多有7次机会,要使用循环结构对游戏次数进行计数,当次数大于7时,使用break语句对程序进行终止。
【程序】:n=unidrnd(100); % 随机产生一个[1,100]之间的整数i=0; % 赋数i的初值为0for i=0:6; % i从0到6开始循环m=input(‘m=’); % 输入数mi=i+1; % 累计猜数次数if m>n % 判断输入的数是否大于计算机产生的数disp(‘high’); % 输出“high”elseif m<n % 判断输入的数是否小于计算机产生的数disp(‘low’); % 输出“low”else % 判断输入的数是否等于计算机产生的数disp(‘you win’);% 输出“you win”break % 跳出for循环end % for循环结构结束end % 程序结束disp(‘you lose’); % 输出“you lost”【运行结果】:第一次,我们输入10,计算机显示“low”,随后,我们依次输入了40、25、32、28,计算机分别显示“high”、“low”、“you win”,随后我们重复试验多次,发现程序能按要求运行;第二次,为了检验该序是否只给用户最多7次机会,我们输入7次1,前6次显示“low”,最后一次显示“youlose”。
【结果分析及说明】:通过我们多次输入数据,我们发现计算机能正常显示“low”、“high”、“you win”和“you lost”,并且当输入数据达到7次而又没有与计算机产生的数不符时,能终止游戏进行,这说明改程序能满足游戏的要求。
C语言课程设计报告题目:猜数字游戏班级:通信工程组名:第三组指导教师:梅日期:2011/12/1目录C语言课程设计报告 (1)目录 (2)1 需求分析 (3)1.1问题分析 (3)1.2采用技术 (3)1.3设计目标 (3)2 总体设计 (4)2.1程序设计思路简介 (4)2.2系统模块设计 (4)3 详细设计 (5)3.1模块功能说明 (5)3.2程序设计模块流程 (5)3.3系统流程图 (6)4 测试结果 (7)4.1 游戏开始界面 (7)4.2 猜中结果 (8)4.3 10未猜中结果 (8)4.4 再次接着猜 (9)4.5 未猜中结束游戏 (9)5 程序清单 (10)6 感想 (12)时间安排表 (13)时间 (13)容 (13)责任人 (13)课程设计评定表 (14)附录2 问题记录 (17)1 需求分析1.1问题分析在本次实验中,我们将尝试编写一个猜数游戏程序。
结合现有的我们学过的C 语言知识,我们可以编写一段程序,由计算机随机产生一个数字,由玩家输入数字,来实现猜数字游戏的过程。
1.2采用技术按照实验要求,我们将使用C语言运用Turbo C来编写一个程序来实现这个猜数字的过程。
在程序中,我们将用到学过的while等C语言常用语句,调用rand()%100产生随机数等各类函数来完成猜数字实验程序。
1.3设计目标实现计算机产生随机正整数功能;实现对猜数字大小提示功能;实现提示所猜的次数;实现猜数字次数上限功能;实现对不同次数得到结果评定功能;实现再次开始游戏功能;2 总体设计2.1程序设计思路简介编程先由计算机“随机生成”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。
每次运行程序可以反复猜多个数,直到操作者想停止时才结束。
《程序设计课程设计》题目:《猜数字》游戏物联网工程学院计算机科学与技术专业学号:学生姓名:孙文佳班级:计科1305成绩:设计思路:猜数字是一个比较益智的游戏,游戏规则也很简单,真正自己实现游戏的运行也并不是什么难事,下面就主要讲讲自己的设计思路。
大的框架是把函数封装在类中,这样就可以应用所学的类。
首先是随机产生一个4位整数,根据要求,最高位不能为0,且每一位的数不能相同。
让系统随机产生4个个位数,这里就用到srand(time(NULL))获取系统的时间作为种子,防止每次运行的结果都是相同的。
time()函数包含在头文件time.h中。
用一个for语句,依次产生这四个数,因为要求最高位不能为0,这里就用一个while语句重新生成a[0],然后就是每位上的数不得相同,依然用while语句解决这个问题。
接着是提示用户输入一个四位数,把这个四位数各位上的数保存在数组b[4]中,然后就是比较b[4]和a[4],计算数字正确且位置正确的数的个数,还有数字正确但位置错误的数的个数(这应该是游戏的额核心),其实这一步也不难,就是利用一个for语句逐个比较b[j]与a[i],如果b[j]等于a[i],wrong++,然后判断i是否等于j,是的话right++,wrong--,如果猜了8次还不正确的话,提示用户是否继续,这里用一个switch语句就行了。
如果猜了15次还不正确的话,提示用户游戏失败,是否重新玩一局。
在此之前把这次的记录写入txt文件中,这里就用到c++的输入输出流,对于数据的保存只要学会格式,依葫芦画瓢即可。
还有就是数据的读取,在游戏结束时输出上一局的结果。
程序代码:#include<iostream>#include<time.h>#include<windows.h>#include<fstream>using namespace std;class game{public:void showfunction();void showfunction2();void target();void start();void tips();void selection();private:int a[4];};void gotoxy(int x, int y){HANDLE hCon;hCon = GetStdHandle(STD_OUTPUT_HANDLE);COORD setps;setps.X = x;setps.Y = y;SetConsoleCursorPosition(hCon,setps);}void data_load(){ifstream e;int count=0;int b[4],right,wrong;e.open("Data.txt",ios::binary|ios::in);if(e){e.seekg( (count++) * sizeof(int),ios::beg);e.read( (char *)&right,sizeof(int));e.seekg( (count++) * sizeof(int),ios::beg);e.read( (char *)&("A"),sizeof(int));e.seekg( (count++) * sizeof(int),ios::beg);e.read( (char *)&wrong,sizeof(sizeof(int)));e.seekg( (count++) * sizeof(int),ios::beg);e.read( (char *)&("B"),sizeof(int));cout<<"上一局结果是:"<<right<<"A"<<wrong<<"B"<<endl;}}void quit(){gotoxy(0,10);cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * *"<<endl;cout<<" "<<"* 正在退出游戏,请稍后(loading......) *"<<endl;cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * *"<<endl;Sleep(1500);system("cls");}void game::selection(){int n;cout<<" "<<"** * * * * * * * * * * * * **"<<endl;cout<<" "<<"*1:返回主菜单。
2:退出游戏.*"<<endl;cout<<" "<<"** * * * * * * * * * * * * **"<<endl;cout<<"输入你的选择:";cin>>n;switch(n){case 1 : system("cls");showfunction();break;case 2 : system("cls");quit();break;}}void game::tips(){gotoxy(0,6);cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;cout<<" "<<"* 游戏规则如下: *"<<endl;cout<<" "<<"* 系统会随机产生1个各位互相不相同的4位数,然后你有10次机会去猜。
当你*"<<endl;cout<<" "<<"* 猜错了,会自动提示你离答案的差距。
然后你再根据提示去猜,直到猜出或者*"<<endl;cout<<" "<<"* 10次机会用完为止。
*"<<endl;cout<<" "<<"* 这个游戏考1个人的逻辑推理能力。
祝你好运!*"<<endl;cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;selection();}void game::showfunction(){int f,t=1;gotoxy(0,5);cout<<" "<<"** * * * * * * * * * * * * * * * * * * *"<<endl;cout<<" "<<"* 游戏菜单*"<<endl;cout<<" "<<"** * * * * * * * * * * * * * * * * * * *"<<endl;cout<<" "<<"* 1、开始游戏*"<<endl;cout<<" "<<"* 2、查看游规则*"<<endl;cout<<" "<<"* 3、退出*"<<endl;cout<<" "<<"** * * * * * * * * * * * * * * * * * * *"<<endl;cout<<endl<<endl<<endl<<endl;cout<<" "<<"输入你的选择:";while(t){cin>>f;switch(f){case 1: system("cls");target();t=0;break;case 2: system("cls");tips();t=0;break;case 3: system("cls");data_load();quit();t=0;break;default:cout<<"============================"<<endl;cout<<" 按键无效!请重新输入!"<<endl;cout<<"============================"<<endl;break;}}}void game::showfunction2(){int f,t=1;gotoxy(0,7);cout<<" "<<"** * * * * * * * * * * * * **"<<endl;cout<<" "<<"*1:重玩游戏. 2:退出游戏.*"<<endl;cout<<" "<<"** * * * * * * * * * * * * **"<<endl;cout<<"输入你的选择:";while(t){cin>>f;switch(f){case 1: system("cls");target();t=0;break;case 2: system("cls");quit();t=0;break;default: cout<<"输入非法,重新输入!"<<endl;break;}}}void game::target(){srand((unsigned)time(NULL));for(int i=0;i<4;i++)a[i]=rand()%10;while(a[0]==0) a[0]=rand()%10;while(a[0]==a[1]) a[1]=rand()%10;while(a[0]==a[2]||a[1]==a[2]) a[2]=rand()%10;while(a[0]==a[3]||a[1]==a[3]||a[2]==a[3]) a[3]=rand()%10;start();}void game::start() {int i,j,times=0,t,b[4];cout<<" "<<"* * * * * * * * * * * * *"<<endl;cout<<" "<<"* 游戏开始!*"<<endl;cout<<" "<<"* * * * * * * * * * * * *"<<endl;for(i=0;i<4;i++)cout<<a[i]<<" ";cout<<endl;cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;cout<<" "<<"* 现在系统随机产生了1个各位互不相同的4位数*"<<endl;cout<<" "<<"* (如,1234).你猜它是什么?*"<<endl;cout<<" "<<"* * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;for(times=0;times<15;times++){int right=0,wrong=0,flag=1000,p=1;while(p){cout<<endl<<"你还有"<<15-times<<"次机会!";cout<<"请输入你猜测: ";cin>>t;if(t<1000||t>9999){cout<<"==================================================="<<en dl;cout<<" 输入错误咯哦。