瞬间记忆力大考验

合集下载

记忆大挑战小游戏

记忆大挑战小游戏

记忆大挑战小游戏
《记忆大挑战》是一款考验玩家记忆力的小游戏,旨在提高玩家的
观察力和记忆能力。

游戏的目标是在规定的时间内记住并找出尽可
能多的配对图片。

游戏规则很简单:首先,玩家需要选择难度级别,通常分为简单、
中等和困难三个级别。

难度级别越高,图片数量和难度会相应增加。

接着,屏幕上会显示一组图片,然后这些图片会被翻转过来,玩家
需要在规定的时间内记住每个图片的位置和内容。

一旦时间结束,
图片将会再次翻转过来,玩家需要尽可能快地找出每对配对的图片。

游戏会根据玩家找出的配对数量来评定玩家的记忆能力和观察力。

玩家需要注意的术语和技巧包括:
1. 观察力:玩家需要在规定的时间内仔细观察每个图片,记住它们
的位置和内容。

2. 记忆能力:玩家需要在图片被翻转之后,凭记忆找出每对配对的
图片,这需要良好的记忆能力。

3. 时间管理:玩家需要在规定的时间内完成记忆任务,因此需要有
效地管理时间,尽快找出配对的图片。

为了更好地享受游戏的乐趣,玩家可以尝试不同的策略和方法来提
高记忆能力和观察力,比如通过练习来提高记忆能力,或者通过专
注和放松来提高观察力。

此外,玩家还可以与朋友一起比赛,看谁的记忆能力和观察力更强,增加游戏的挑战性和乐趣。

记忆力测试题目及增强记忆的10种方法

记忆力测试题目及增强记忆的10种方法

记忆力测试题目及增强记忆的10种方法大脑记忆力量的开发全依靠于科学规律的方法。

京恩记忆法让机械记忆转变成科学快速记忆。

古往今来,凡是有作为者皆是记忆力超群,有些是靠天赋,有些是靠日积月累的简洁记忆。

你想知道自己的记忆力如何吗?那记忆力测试题目有哪些呢?以下是学习啦我为大家收集整理的记忆力测试题目的全部内容了,仅供参考,欢迎阅读参考!盼望能够关心到您。

记忆力测试题目、机械记忆力的测试下面列出3行数字,每行12个。

你可任选行,在1分钟内读完(平均每5秒钟读一个数),然后把记住的数字写出来(可以颠倒位置)。

依据记住的多少,测试你的记忆力。

73 49 64 83 41 27 62 29 38 93 71 9757 29 32 47 94 86 14 67 75 28 79 2436 45 73 29 87 28 43 62 75 59 93 67二、集中留意力的记忆程度的测试下面编排了100个数字,请你在这些数字中按挨次找出15个数字来,例如2-16,或61-75等。

依据你找到这15个连续数字所需要的时间,可以测试你在集中泞意力时的记忆程度究竟如何。

12 33 40 97 94 57 22 19 49 6027 98 79 8 70 l3 61 6 80 99541 95 14 76 8l 59 48 93 2820 96 34 62 50 3 68 16 78 3986 7 42 11 82 85 38 87 24 4763 32 77 51 71 21 52 4 9 6935 58 18 43 26 75 30 67 46 8817 64 53 1 72 15 54 10 37 2383 73 84 90 44 89 66 91 74 9221 36 55 65 31 0 45 29 56 2三、方位记忆力的测试下面有10个不同的几何图形,请你用5秒钟的时间观看各团的相互位置(即谁挨着谁),再交给你分别画有这10个图形的硬纸片(硬纸片的前后挨次必需订乱),请你按观看时所记住的图形的位置来排列,依据你排列的正误记分统汁。

记忆力大考验

记忆力大考验
记忆力大考验
第一部分:全国人口知多少
民族
壮族
人口
15489630 9821180 8602978 7398035
满族
回族 苗族 维吾尔族 彝族 土家族
7214431
6572173 5704223
第一部分:全国人口知多少
民族
蒙古族 藏族 布依族 侗族 瑶族 朝鲜族 白族
人口
4806849
4593330 2545059 2541014
2134013 1920597
1253952
第一部分:国人口知多少
民族
哈尼族 哈萨克族
人口
1253952 1111718 1025128 630378
傣族 畲(shē)族
傈(lì )僳(sù)族 仡(gē)佬族 高山族
574856
437997 400000
第二部分:看谁记得多 •游戏规则: •第一阶段,屏幕上会出现用动画人物 的名字,限时记忆2分钟,2分钟后开 始填空,看你能记住几个
第二部分:看谁记得多
• 第一阶段:请记忆下面动画人名 • 辛巴,鹏鹏,木法沙,娜娜,丁丁,图图, 辛德瑞拉,唐老鸭,老夫子,葫芦娃,七色 路子,小孙悟空,海的女儿,小飞侠,蜘蛛 侠,蝙蝠侠,迪迦奥特曼,泰罗奥特曼,超 级无敌,哈利波特,汉斯!
第二部分:看谁记得多
• 第一阶段:请填空 木法沙 丁丁 • 辛巴,( 鹏鹏 ),( ),娜娜,( ), 图图,( 辛德瑞拉 ),( ), 唐老鸭),( 老夫子 葫芦娃,七色路子,小孙悟空,海的女儿, 迪迦奥特曼), 小飞侠,( 蜘蛛侠 ),蝙蝠侠,( 泰罗奥特曼,超级无敌,哈利波特,汉斯!
•谢谢观看

记忆力测试题型及答案

记忆力测试题型及答案

记忆力测试题型及答案一、选择题1. 下列哪项不是提高记忆力的方法?A. 规律作息B. 健康饮食C. 长时间熬夜D. 适量运动答案:C2. 记忆力测试中,哪个时间段的记忆最容易受到干扰?A. 早晨B. 中午C. 晚上D. 凌晨答案:B二、填空题3. 记忆力测试中,_________是衡量记忆力强弱的重要指标。

答案:记忆容量4. 根据艾宾浩斯遗忘曲线,记忆的遗忘速度在_________最快。

答案:记忆后的最初几小时三、判断题5. 记忆力测试中,重复练习可以显著提高记忆力。

答案:正确6. 记忆力测试表明,听音乐可以提高记忆力。

答案:错误四、简答题7. 请列举三种日常生活中可以提高记忆力的方法。

答案:(1) 保持充足的睡眠;(2) 进行有规律的身体锻炼;(3) 采用多感官学习法,如视觉、听觉和动手操作相结合。

8. 描述艾宾浩斯遗忘曲线的基本规律。

答案:艾宾浩斯遗忘曲线表明,人们在学习新信息后,遗忘的速度最初很快,随着时间的推移逐渐减慢。

遗忘曲线呈现下降趋势,但遗忘量会逐渐减少。

五、论述题9. 论述记忆力测试在教育领域的应用及其重要性。

答案:记忆力测试在教育领域有着广泛的应用,它可以帮助教师了解学生的记忆能力和记忆特点,从而制定更有效的教学策略。

记忆力测试的重要性体现在:(1) 帮助学生认识到自己的记忆优势和不足,有针对性地进行学习;(2) 为教师提供个性化教学的依据,提高教学效果;(3) 促进学生记忆策略的培养,提高学习效率。

六、案例分析题10. 假设你是一名教师,你的学生在记忆力测试中表现不佳,你将如何帮助他们提高记忆力?答案:首先,我会分析学生在记忆力测试中的具体问题,如是短期记忆还是长期记忆的问题,或者是记忆的保持和回忆问题。

然后,我会根据学生的特点,提供个性化的建议和训练方法,如教授有效的记忆技巧,如联想记忆、图像记忆等;鼓励学生进行定期复习,以加强记忆的巩固;同时,我会创造一个有利于记忆的环境,如减少干扰因素,提供充足的学习资源等。

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验聚会是朋友和家人相聚的美好时光,除了闲聊、美食,还可以通过各种游戏来增加互动与乐趣。

其中,记忆力游戏不仅能活跃气氛,还能锻炼脑力,是大家在聚会中不可或缺的一部分。

本文将介绍几种适合聚会的记忆力游戏,让参与者在欢声笑语中挑战自己的记忆力,增进彼此间的交流。

一、游戏1:物品记忆挑战物品记忆挑战是一种简单有趣的游戏,非常适合在聚会上进行。

基本规则是参与者需要在一定时间内记住房间内摆放的物品,然后再将这些物品的名称及数量说出来。

游戏准备物品选择:选择10至15个家中常见的物品(如书籍、杯子、玩具等),并在一处摆放整齐。

时间限制:设置一个时间限制,通常为30秒到1分钟,让参与者观察这些物品。

游戏过程展示物品:让所有参与者围观并观察这些物品,尽量记住每个物品的名称和位置。

盖上眼睛:观察结束后,让参与者遮住眼睛或转过身去。

物品移走:由另一名参与者移动其中一部分物品或覆盖部分物品,然后把盖住的部分重新展示出来。

回答时间:让参与者用最少时间回想起看到过的物品,并说出他们的名称。

游戏评分每个正确回答得1分,错误或忘记得0分。

二、游戏2:重复数字序列重复数字序列是一种考验反应速度与记忆力结合的游戏,适合人数较多的聚会通过计数来达到良好的互动效果。

游戏准备人数要求:至少需要六人以上参加。

数字选择:准备数字从1到9(可根据参与人数调整范围)。

游戏过程初始数字:由第一位参与者说出一个数字(如“3”)。

依次递增:第二位参与者重复第一个人说出的数字,接着添加一个新的数字(如“3,5”)。

继续顺序:接下来的参与者需重复前面所有人的数字并再添加一个新数字。

在这个过程中,随着人数增多,每个人需要回忆起越来越长的数字序列,从而增加难度和挑战性。

游戏结束当某位参与者无法回忆起整个序列时,其余参与者可以决定是否给予其再次尝试的机会。

此时应鼓励大家一起加油,荣誉归属于最终能够坚持到最后的人。

三、游戏3:猜词谜语猜词谜语是借助语言来提升记忆力与思维能力的一种趣味活动,该游戏充满娱乐性且极易引发讨论,为聚会增添欢乐氛围。

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验聚会游戏一直是增加气氛、拉近彼此距离的利器。

而记忆力游戏,更是一种能够锻炼大家大脑、挑战智力的精彩选择。

在聚会中,通过一些有趣的记忆力游戏,不仅可以增加互动乐趣,还能够检验大家的记忆力和观察力。

下面就让我们一起来探讨几种记忆力大考验的聚会游戏吧!首先,我们来介绍一款经典的记忆力游戏——“物品记忆”游戏。

在这个游戏中,首先需要一些小道具,比如水杯、笔、纸、手机等日常用品。

游戏开始时,一位参与者拿出这些道具,让所有参与者观看几十秒钟,然后收起道具。

接着,参与者们需要在规定的时间内写下他们所记得的这些道具。

记得越多,得分越高。

这个游戏不仅考验大家的观察力和记忆力,还能够增加大家的互动和竞争氛围。

其次,还有一款受欢迎的记忆力游戏——“数字接龙”游戏。

在这个游戏中,首先需要确定一个起始数字,比如100。

然后,第一个参与者说出100后面的一个数字,比如101,接着下一个参与者要在101的基础上再加1,说出102。

依次类推,一直进行下去。

如果有人出错或者超时未能说出数字,则被淘汰。

这个游戏不仅考验大家的数字记忆能力,还能够培养大家的逻辑思维和反应能力。

另外,还有一款富有挑战性的记忆力游戏——“图形记忆”游戏。

在这个游戏中,可以准备一些简单的图形卡片,比如圆形、三角形、正方形等。

游戏开始时,参与者们需要观看这些图形卡片,然后在卡片收起后,根据记忆画出他们所看到的图形。

难度可以逐渐增加,比如增加图形数量或者增加复杂度。

这个游戏不仅能够锻炼大家的视察力和记忆力,还能够培养大家的创造力和想象力。

最后,还有一款考验团队合作的记忆力游戏——“口令传递”游戏。

在这个游戏中,参与者们分成若干小组,每个小组站成一排。

游戏开始时,主持人会给第一个人一个口令,比如一句话或者一串数字。

第一个人需要传递口令给第二个人,第二个人再传递给第三个人,依次传递下去,直到最后一个人。

最后一个人需要大声说出口令,看看是否和最初的口令一致。

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验聚会是人们放松心情、增进友谊的好机会。

而在聚会中,游戏是不可或缺的一环。

其中,记忆力游戏是一种受欢迎的选择,因为它既能考验参与者的记忆力,又能带来欢乐和互动。

本文将介绍一种记忆力大考验的聚会游戏,希望能给读者带来启发和乐趣。

游戏规则:1. 参与者坐成一圈,由一人开始,称为“发起者”。

2. 发起者先说出一个单词,例如“苹果”。

3. 下一个参与者要在前一个单词的基础上,再说出一个以前一个单词结尾的新单词,例如“苹果”→“橙子”。

4. 游戏继续进行,每个参与者都要说出一个新单词,以前一个单词结尾。

5. 如果有参与者无法说出新单词或者说错了单词,他将被淘汰出局。

6. 游戏继续,直到只剩下最后一个参与者为止。

这个游戏看似简单,但实际上需要参与者具备较强的记忆力和反应能力。

因为随着游戏的进行,参与者需要不断回忆前面的单词,并在短时间内想出新的单词。

这对于大脑的训练和锻炼非常有益。

此外,这个游戏还能增进参与者之间的互动和交流。

在游戏中,参与者需要倾听前一个人说的单词,并在短时间内做出反应。

这样一来,参与者之间就会产生紧密的联系,相互之间的默契也会得到提升。

为了增加游戏的趣味性和挑战性,可以对游戏规则进行一些变化。

例如,可以限定单词的主题,如水果、动物、城市等,这样参与者需要在特定主题下进行思考和回忆。

另外,可以设置时间限制,每个参与者只有几秒钟的时间来想出新单词,这样可以增加游戏的紧张感和刺激性。

记忆力大考验游戏不仅适用于聚会,也可以用于其他场合,如培训、团建等。

通过这个游戏,参与者可以在轻松愉快的氛围中锻炼自己的记忆力,提高大脑的灵活性和反应能力。

同时,游戏还能促进人际交流和团队合作,增进彼此之间的了解和信任。

总之,记忆力大考验是一种简单而又有趣的聚会游戏。

通过这个游戏,参与者可以锻炼记忆力、提高反应能力,并增进彼此之间的互动和交流。

希望读者在下次聚会中尝试这个游戏,享受其中的乐趣和挑战。

聚会游戏:记忆力大考验

聚会游戏:记忆力大考验聚会游戏一直是增加气氛、拉近彼此距离的利器。

而记忆力大考验,作为一款经典的聚会游戏,更是能够考验参与者的观察力、记忆力和反应能力。

在这个游戏中,参与者需要认真观察一段时间展示的物品或图片,然后在规定的时间内回忆并写下他们所看到的内容。

接下来,让我们一起来了解一下这款令人兴奋的聚会游戏吧!首先,记忆力大考验游戏的准备工作非常简单。

主持人只需要准备一些物品或图片,可以是各种形状、颜色和大小的物品,也可以是卡片上的图案或文字。

在游戏开始前,主持人需要将这些物品或图片摆放在桌子上或展示给所有参与者观看一段时间,让他们有足够的时间来记忆这些内容。

接着,游戏正式开始。

主持人会给每位参与者一张纸和一支笔,然后开始倒计时。

参与者需要在规定的时间内回忆并写下他们所看到的物品或图片。

时间一到,参与者需要停止写作并交出自己的答卷。

在收集所有答卷后,主持人会逐一公布正确答案。

参与者们可以逐个核对自己的答卷,看看自己是否能够完全记住展示的内容。

最后,根据答对的数量来评选出胜出者,他们将获得游戏的奖品。

记忆力大考验游戏不仅能够锻炼参与者的观察力和记忆力,还能够增加参与者之间的互动和交流。

在游戏过程中,大家可以相互讨论、比较答案,共同回忆展示的内容,这不仅能够增进彼此之间的了解,还能够培养团队合作意识和集体荣誉感。

此外,记忆力大考验游戏还可以根据不同的场合和人群进行创新。

比如,在家庭聚会中,可以准备一些家庭照片或生活用品让参与者回忆;在团队建设活动中,可以准备一些与工作相关的内容让参与者回忆。

通过不断地改变游戏的内容和形式,可以让参与者在不同的情境下得到不同的挑战和乐趣。

总的来说,记忆力大考验游戏是一款简单而有趣的聚会游戏,不仅能够锻炼参与者的大脑,还能够增进彼此之间的交流和互动。

在未来的聚会中,不妨尝试一下这款游戏,相信会给大家带来意想不到的快乐和惊喜!让我们一起挑战记忆力的极限,创造更多美好的回忆吧!。

记忆大考验教案托班

记忆大考验教案托班设计意图上课注意力不集中,经历过的事情或者拿过的东西总是记不住,是每一个家长包括老师都关注的问题。

因此设计了一系列的记忆力训练,帮助孩子提升记忆力。

在对幼儿记忆力训练的过程中,趣味性是不可缺少的,因此选择了一些趣味性、团体性的游戏项目,以循序渐进,由简入难的方式培养幼儿正确的记忆方法和习惯。

活动目标1、通过视觉游戏掌握视觉记忆的秘密:心口一致、边说、边点、边记录等;2、愿意合作,体会共同研究问题,解决问题的快乐;3、运用观察、操作、发现等学习方式进行视觉游戏的判断。

重点难点1、能够运用观察、发现等学习方式找到视觉记忆的秘诀;2、能够小组合作,不争抢。

活动准备记分牌、抢答器、PPT、计时器、音频、答案、磁力贴活动过程一、导入1、冥想《森林之声》师:今天老师带来了一段录音,我们来一起听一听。

教师播放录音,引导幼儿进入冥想状态。

2、分组游戏《狮子的秘密》教师巡回指导,鼓励幼儿通过游戏进行分组。

游戏玩法:寻找狮子藏在你们身边的秘密(椅子下面),找到后请仔细观察15秒,然后回答我的问题。

师:刚才你观察到了什么?师:现在请根据刚刚你观察到的物品的数量进行分组。

3、身份认证教师组织幼儿回忆身份职责并进行身份认证。

师:在森林运动会开始之前,照例各组要进行身份认证,我们来一起回忆一下四个身份的工作职责。

教师播放身份职责PPT。

PPT:师:现在给各组一分钟的时间进行身份认证,结束的小组,请用行动告诉我,比如说:坐好、手放在膝盖上。

师:相信你们一定可以共同商讨出一个解决方案。

师:哪位小运动员更愿意谦让你的同伴,主动在下一届的森林运动会时再来当组长呢?二、游戏环节(森林趣味运动会)1、出示分值板教师边出示加、减分规则分值板边向幼儿解读。

分值板:最终解释权,全部归才裁判。

2、比赛项目一:《看谁记得快》(4道题)教师播放PPT后提出问题,计时结束后指定小组回答。

(1)比赛规则:本题为必答题,请记住图片上的内容,30秒后以组为单位,由组长选派一名参赛选手开始答题。

瞬的记忆技巧

瞬的记忆技巧记忆是人类大脑最神奇的能力之一,而如何提高记忆力,成了许多人关注的焦点。

瞬间记忆技巧是一种特殊的记忆方法,它能够帮助我们快速记忆大量的信息,提高学习效率。

下面我将从认知心理学的角度,结合实际技巧,为大家详细介绍瞬间记忆技巧的原理和方法。

认知心理学认为,记忆是通过感知、编码、存储和检索等过程来完成的。

在这一过程中,瞬间记忆技巧主要侧重于有效的编码和存储策略,以提高信息的保持时间和检索速度。

首先,我们需要了解一下人类大脑的记忆原理。

大脑的记忆能力是有限的,我们无法长时间地保持大量的信息。

因此,瞬间记忆技巧的核心原理就是“选择性记忆”,即在短时间内对重要信息进行高效地编码和存储,以提高学习效率。

其次,瞬间记忆技巧的方法主要包括联想记忆、情景记忆和故事记忆等。

其中,联想记忆是一种常用的记忆技巧,它通过将学习内容与已有的知识和经验相联系,以快速编码和存储信息。

例如,当我们学习一个生僻的单词时,可以通过与常见的事物或场景相联想,以提高记忆效果。

情景记忆则是根据学习内容的语境和情境进行编码和存储,例如在学习外语时,可以通过模拟情景进行记忆。

故事记忆则是将学习内容编排成一个生动有趣的故事,以帮助记忆。

此外,瞬间记忆技巧还包括一些实用的辅助方法,如口诀、图像记忆和音频记忆等。

口诀就是通过编排有规律的韵文或歌曲来帮助记忆,如记忆乘法口诀表。

图像记忆则是通过绘制生动形象的图像来辅助记忆。

音频记忆则是通过录制音频来进行记忆。

这些辅助方法可以帮助我们更快地将信息编码和存储到大脑中。

除了以上原理和方法,瞬间记忆技巧还需要结合一些注意力和专注力的训练。

注意力和专注力是人类大脑进行信息编码和存储的重要前提,只有保持高度的注意力和专注力,瞬间记忆技巧才能够取得良好的效果。

因此,我们需要通过一定的训练和锻炼来提高自己的注意力和专注力,如定时休息、规律作息、专注力训练等。

总的来说,瞬间记忆技巧是一种非常实用和有效的记忆方法,它可以帮助我们快速记忆大量的信息,提高学习效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

瞬间记忆力大考验一、课题内容和要求课题内容:根据游戏难度,随机产生一个4*4或4*5或6*6的二维数组,填入不同的符号,测试者通过输入坐标,指定记忆中相同的两个(或三个)符号的位置。

正确,则显示符号对应图形,不正确则显示图形后随机关闭(显示时间为1秒)。

记录完成猜测的时间并保留成绩,设置排行榜。

要求:1.图形组合的瞬间停留,利用菜单提供初级(4*4)、中级(4*5)、高级(6*6)的测试项目。

高级中图形为每组3个,共12组图案。

2. 定义用户的结构体,用于记录不同用户的密码、测试成绩,并进行排名。

3.提供相应用户密码的安全测试。

1)如果密码长度小于6 位,则不安全2)如果组成密码的字符只有一类,则不安全3)如果组成密码的字符有两类,则为中度安全4)如果组成密码的字符有三类或以上,则为安全5)通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。

4.用户游戏信息以文件形式保存。

二、需求分析【1】可操作的主菜单:输出主菜单,用于显示以选择游戏中不同的功能选项。

根据玩家输入的选项来运行不同的功能,运行不同的函数。

【2】查看游戏排行榜【3】清空游戏排行榜【4】注册游戏账号【5】用游戏账号登陆进行游戏【6】4*4,4*5,6*6的记忆游戏。

可方便的升级到任意大小的记忆游戏。

【7】查看自己所有的游戏记录(按时间顺序)【8】游戏中有倒计时功能【9】提示用户密码强度功能【10】输入密码是关闭回显【11】保存所有信息到文件。

程序关闭后,重新打开,信息不会丢失。

三、概要设计本程序包含一个主体模块,另包括三个子模块,密码强度检验模块、游戏难度选择模块和菜单模块。

游戏开始后,游戏者需先通过以上两个子模块分别设置密码和选择游戏难度,之后根据游戏者的选择进行不同难度游戏。

游戏随机产生一个4*4或4*5或6*6的二维数组,相应地填入8对或10对或12对不同的符号,测试者通过输入坐标,指定记忆中相同的两个符号的位置。

正确,则显示符号对应图形,不正确则显示图形后随机关闭(显示时间为1秒)。

最后记录完成猜测的时间,并保留成绩到指定文件夹。

密码强度检验模块游戏难度选择模块四、源程序代码(部分)#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#define TRUE 1#define FALSE 0格式化时间函数YYYY.MM.DD hh:mm:ss*/char __format_time__[40];char* getFormatTime(long t){strftime(__format_time__,sizeof(__format_time__)/sizeof(char),"%Y.%m.%d %H:%M:%S", gmtime(&t));return __format_time__;}// 字符最多分类种数#define CHAR_MAX_TYPES 4/*判断字符分类函数数字、大写字母、小写字母和其它符号为四类不同的字符。

*/int getCharType(char ch){if(ch>='0' && ch<='9'){return 0;}else if(ch>='a' && ch<='z'){return 1;}else if(ch>='A' && ch<='Z'){return 2;}else{return 3;}}// 密码分类等级名称char PASSWORD_SECURITY_QUOTIETY_NAME[][10]={"不安全","中度安全","安全"};int getPasswordSecurityQuotiety(char pass[]){// 密码中字符种类int charTypeNum = 0,isCharTypeExisted[CHAR_MAX_TYPES]={0};int i;if(strlen(pass)<6){return 0;}else{// 初始化for(i=0;i<CHAR_MAX_TYPES;i++){isCharTypeExisted[i] = FALSE;}// 统计字符种类for(i=0;i<strlen(pass);i++){if(isCharTypeExisted[getCharType(pass[i])] == FALSE){isCharTypeExisted[getCharType(pass[i])] = TRUE;charTypeNum++;}}// 返回密码强度if(charTypeNum == 1){return 0;}else if(charTypeNum == 2){return 1;}else if(charTypeNum >= 3){return 2;}}}// 输入密码是特别的回显字符#define PASSWORD_SPECIAL_CHAR '*'// 输入密码函数,关闭回显void inputPassword(char str[]){char ch;int i=0;fflush(stdin);while((ch=getch())!='\r'){// 退格键if(ch==8 && i>0){printf("\b \b");i--;continue;}str[i++] = ch;printf("*");}printf("\n");str[i++]='\0';}// 二维坐标struct Point{int x,y;};/***************************************************************************** ****记忆图形结构体*****************************************************************************/// 二维字符数组的最大尺寸#define CHAR_ARRAY_MAX_SIZE 6// 二维字符数组中一组字符的大小#define CHAR_ARRAY_MAX_GROUP_SIZE 3// 可以存放到二维数组中的符号char CHAR_ARRAY_A V AILABLE_SHOW_CHAR[] ={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', '!','#','$','%','^','&','(',')','-','_','+','=','[',']','{','}','<','>'};// 用来遮掩二维数组中的符号的特定符号#define CHAR_ARRAY_SPECIAL_SHIELD_CHAR '*'// 用来表示二维数组中特定位置没有符号的特定符号#define CHAR_ARRAY_SPECIAL_EMPTY_CHAR '\0'// 要记忆的二维字符数组struct CharArray{// 要记忆的二维字符数组char array[CHAR_ARRAY_MAX_SIZE][CHAR_ARRAY_MAX_SIZE];// 图形是否被关闭标记int isShield[CHAR_ARRAY_MAX_SIZE][CHAR_ARRAY_MAX_SIZE];// 要记忆的二维字符数组的高int height;// 要记忆的二维字符数组的宽int width;// 要记忆的二维字符数组的每组字符数int groupSize;};// 初始化void initCharArray(struct CharArray* charArray,int h,int w,int s);// 打开全部图形void setCharArrayAllShow(struct CharArray* charArray);// 关闭全部图形void setCharArrayAllShield(struct CharArray* charArray);// 指定位置的图形的状态void setCharArrayState(struct CharArray* charArray,int state,struct Point points[],int n); // 判断二维数组中是不是全部图形都可见int isCharArrayAllShow(struct CharArray* charArray);// 判断指定的一组位置上的图形是否相同int isCharArraySameCharAtPoints(struct CharArray* charArray,struct Point points[],int n); // 在屏幕显示二维字符数组void showCharArray(struct CharArray* charArray,int showTime);// 初始化void initCharArray(struct CharArray* charArray,int h,int w,int s){int i,j,k;int isFind;char ch;int x,y;charArray->height = h;charArray->width = w;charArray->groupSize = s;srand(time(NULL));memset(charArray->array,CHAR_ARRAY_SPECIAL_EMPTY_CHAR,sizeof(charArray->array) );for(k=0;k<charArray->height*charArray->width/charArray->groupSize;k++){// 随机产生一个字符do{ch = CHAR_ARRAY_A V AILABLE_SHOW_CHAR[rand()%sizeof(CHAR_ARRAY_A V AILABLE_S HOW_CHAR)];isFind = FALSE;for(i=0;i<charArray->height&&!isFind;i++){for(j=0;j<charArray->width&&!isFind;j++){if(charArray->array[i][j] == ch){isFind = TRUE;}}}}while(isFind == TRUE);for(i=0;i<charArray->groupSize;i++){// 随机产生一个坐标do{x = rand()%charArray->width;y = rand()%charArray->height;}while(charArray->array[y][x] != CHAR_ARRAY_SPECIAL_EMPTY_CHAR);// 填入字符charArray->array[y][x]=ch;}}// 关闭全部图形setCharArrayAllShield(charArray);}// 打开全部图形void setCharArrayAllShow(struct CharArray* charArray){int i,j;for(i=0;i<charArray->height;i++){for(j=0;j<charArray->width;j++){charArray->isShield[i][j] = FALSE;}}}// 关闭全部图形void setCharArrayAllShield(struct CharArray* charArray){int i,j;for(i=0;i<charArray->height;i++){for(j=0;j<charArray->width;j++){charArray->isShield[i][j] = TRUE;}}}// 判断指定的一组位置上的图形是否相同int isCharArraySameCharAtPoints(struct CharArray* charArray,struct Point points[],int n) {int i,j;char ch = charArray->array[points[0].y][points[0].x];// 判读点是否重合for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(points[i].x == points[j].x && points[i].y == points[j].y){return FALSE;}}}// 判读点所在图形是否相同for(i=1;i<n;i++){if(charArray->array[points[i].y][points[i].x] != ch){return FALSE;}}return TRUE;}// 判断二维数组中是不是全部图形都可见int isCharArrayAllShow(struct CharArray* charArray){int i,j;for(i=0;i<charArray->height;i++){for(j=0;j<charArray->width;j++){if(charArray->isShield[i][j] == TRUE){return FALSE;}}}return TRUE;}// 在屏幕显示二维字符数组void showCharArray(struct CharArray* charArray,int showTime){int i,j;time_t startTime , currentTime ,tempTime;// 清屏system("cls");printf("*******************************************\n");printf("****记忆图形\n");printf("*******************************************\n");for(i=0;i<charArray->height;i++){for(j=0;j<charArray->width;j++){if(charArray->isShield[i][j]){printf("%c ",CHAR_ARRAY_SPECIAL_SHIELD_CHAR);}else{printf("%c ",charArray->array[i][j]);}}printf("\n");}printf("*******************************************\n");startTime = time(NULL);tempTime = startTime;currentTime = startTime;while(currentTime - startTime < showTime){// 每隔一秒更新一下提示if(tempTime == currentTime){if(tempTime == startTime){printf("开始记忆...剩余%2d秒",showTime-(currentTime-startTime));}else{printf("\b\b\b\b%2d秒",showTime-(currentTime-startTime));}tempTime ++;}currentTime = time(NULL);}}// 全局变量:游戏玩家链表struct Player* _players = NULL;// 全局变量:当前登陆的游戏玩家struct Player _loginPlayer;// 开始一轮游戏void startGame(struct Game * game){int i;// 二维数组图形瞬间停留(显示)setCharArrayAllShow(&game->charArray);showCharArray(&game->charArray,GAME_MAX_CHAR_ARRAY_FIRST_SHOW_TIME );// 遮蔽二维数组图形setCharArrayAllShield(&game->charArray);showCharArray(&game->charArray,0);// 没有达到猜的次数的上限,继续while(game->guessPointsTime < GAME_MAX_GUESS_TIME){// 让玩家指定相同字符所在的坐标for(i=0;i<game->charArray.groupSize;i++){// 输入行坐标ydo{printf("****输入相同图形所在的第%d 个行坐标,范围[1,%d]:",i+1,game->charArray.height);scanf("%d",&game->guessPoints[game->guessPointsTime][i].y);// 用户输入的坐标是从1 开始的,程序中的坐标是从0 开始的,要修正game->guessPoints[game->guessPointsTime][i].y--;}while(game->guessPoints[game->guessPointsTime][i].y < 0 || game->guessPoints[game->guessPointsTime][i].y >= game->charArray.height);// 输入列坐标xdo{printf("****输入相同图形所在的第%d 个列坐标,范围[1,%d]:",i+1,game->charArray.width);scanf("%d",&game->guessPoints[game->guessPointsTime][i].x);// 用户输入的坐标是从1 开始的,程序中的坐标是从0 开始的,要修正game->guessPoints[game->guessPointsTime][i].x--;}while(game->guessPoints[game->guessPointsTime][i].y < 0 || game->guessPoints[game->guessPointsTime][i].y >= game->charArray.width);printf("\n");}// 显示玩家指定位置的二维数组图形setCharArrayState(&game->charArray,FALSE,game->guessPoints[game->guessPointsTime] ,game->charArray.groupSize);showCharArray(&game->charArray,0);// 判断指定位置的图形是否相同if(isCharArraySameCharAtPoints(&game->charArray,game->guessPoints[game->guessPoint sTime],game->charArray.groupSize)){// 记录玩家本次猜字符成功game->guessPointsResult[game->guessPointsTime] = TRUE;}else{// 记录玩家本次猜字符失败game->guessPointsResult[game->guessPointsTime] = FALSE;// 显示一会玩家【指定错误】的字符组showCharArray(&game->charArray,GAME_MAX_CHAR_ARRAY_SHOW_TIME);// 重新遮盖字符玩家【指定错误】的字符组setCharArrayState(&game->charArray,TRUE,game->guessPoints[game->guessPointsTime], game->charArray.groupSize);showCharArray(&game->charArray,0);}game->guessPointsTime ++;// 玩家已经猜出了全部图形,结束本轮游戏if(isCharArrayAllShow(&game->charArray)){game->endTime = time(NULL);game->isSuccessed = TRUE;printf("****恭喜您猜出了所有的图形");break;}}}// 全局变量:瞬间记忆游戏链表struct Game* _games = NULL;/***************************************************************************** ****游戏相关操作*****************************************************************************/// 添加一场新的游戏void addNewGame(struct Game *newGame){struct Game *p;if(_games == NULL){_games = (struct Game*)malloc(sizeof(struct Game));*_games = *newGame;_games->next = NULL;}else{p = (struct Game*)malloc(sizeof(struct Game));*p = *newGame;p->next = _games;_games = p;}}// 初始化瞬间记忆游戏链表从文件数据void initGames(){// 注意要是rb 方式打开文件FILE * gameFile = fopen(GAME_DA TA_FILE_NAME,"rb");struct Game *p,tempGame;int i;if(gameFile){while(fread(&tempGame,sizeof(struct Game),1,gameFile) != 0){addNewGame(&tempGame);}fclose(gameFile);}}// 保存瞬间记忆游戏链表到文件void saveGames(){// 注意要用wb 方式打开文件FILE * gameFile = fopen(GAME_DA TA_FILE_NAME,"wb");struct Game *p;int i;if(gameFile){p = _games;while(p){fwrite(p,sizeof(struct Game),1,gameFile);p = p->next;}fclose(gameFile);}}/***************************************************************************** ****菜单界面*****************************************************************************/// 瞬间记忆游戏主菜单int printMainMenu(){char strChoice[100];int intChoice;system("cls");do{printf("\n*******************************************\n");printf("********主菜单\n");printf("*******************************************\n");printf("*******************************************\n");printf("****1)查看排行榜\n");printf("****2)清除排行榜\n");printf("****3)登录账号开始游戏\n");printf("****4)申请账号开始游戏\n");printf("****5)退出游戏\n");printf("*******************************************\n");scanf("%s",strChoice);intChoice = atoi(strChoice);if(intChoice<1 || intChoice >5){printf("****命令错误!请重新输入命令!");}}while(intChoice<1 || intChoice >5);return intChoice;}// 瞬间记忆游戏主菜单int printGameMenu(){char strChoice[100];int intChoice;system("cls");do{printf("\n*******************************************\n");printf("****瞬间记忆游戏菜单\n");printf("*******************************************\n");printf("****您好:%s\n",_);printf("*******************************************\n");printf("****1)初级(4*4)\n");printf("****2)中级(4*5)\n");printf("****3)高级(6*6)\n");printf("****4)查看游戏记录\n");printf("****5)返回\n");printf("*******************************************\n");scanf("%s",strChoice);intChoice = atoi(strChoice);if(intChoice<1 || intChoice >5){printf("****命令错误!请重新输入命令!");}}while(intChoice<1 || intChoice >5);return intChoice;}void play(){struct Game newGame, *p;char strChoice[100];int intChoice;int guessPrice;while(1){switch (printGameMenu()){// 初级(4*4)case 1:{initGame(&newGame,_,4,4,2);startGame(&newGame);addNewGame(&newGame);break;}// 中级(4*5)case 2:{initGame(&newGame,_,4,5,2);startGame(&newGame);addNewGame(&newGame);break;}// 高级(6*6)case 3:{initGame(&newGame,_,6,6,3);startGame(&newGame);addNewGame(&newGame);break;}// 查看游戏记录case 4:{printPlayerRecord();break;}// 返回case 5:{// 返回之前注销登录的账号strcpy(_,"");strcpy(_loginPlayer.pass,"");return;}}// 按任意键继续fflush(stdin);printf("\n\n按任意键继续\n");getchar();}}int main(int argc, char *argv[]){startNewGame();getch();return 0;}五、测试数据及其结果分析******************************************* ****主菜单******************************************* ****1)查看排行榜****2)清除排行榜****3)登录账号开始游戏****4)申请账号开始游戏****5)退出游戏******************************************* 4******************************************* ****注册菜单******************************************* ****输入要注册的用户名称:k****输入要注册的用户密码:*****************你输入的密码的安全系数:安全****注册成功!******************************************* 按任意键继续***********************************************瞬间记忆游戏菜单***********************************************您好:k***********************************************1)初级(4*4)****2)中级(4*5)****3)高级(6*6)****4)查看游戏记录****5)返回*******************************************1***********************************************记忆图形*******************************************e 8 5 vc 8 e {5 c { vA X A X*******************************************开始记忆...剩余7秒***********************************************记忆图形******************************************** * * ** * * ** * * ** * * ************************************************输入相同图形所在的第1 个行坐标,范围[1,4]:1 ****输入相同图形所在的第1 个列坐标,范围[1,4]:1****输入相同图形所在的第2 个行坐标,范围[1,4]:2 ****输入相同图形所在的第2 个列坐标,范围[1,4]:3。

相关文档
最新文档