hello,大家好,我是wangzirui32,今天我们来学习如何写一个电脑读心术程序,开始学习吧!
1. 原理介绍
本程序使用的读心术原理为吉普赛读心术,流程如下:
- 10~99之间任意挑选一个数
- 用这个数先减去它自己的十位数再减去它的个位数
- 把结果在一个表中找到对应的字母
- 水晶球(电脑)会显示你心里想的那个字母
原理是这样的,10~99之间的数减去个位,再减去十位,一定是9的倍数,如32,减去3再减2是27,然后输出的表中只要把每个9的倍数全部替换为相同的字母,就可以实现100%读出你内心的数了!
2. 编写代码
本程序使用pyttsx3进行语音输出,不了解的同学请跳转到之前的一篇博文学习,代码:
import random
import time
import pyttsx3
# 初始化
engine = pyttsx3.init()# 设置随机数种子为当前时间戳
random.seed(time.time())# 字母表
words ="qwertyuiopasdfghjklzxcvbnm"# 随机选择一个字母作为结果
answer_word = random.choice(words)# 输出消息的封装函数defoutput_message(message):print(message)
engine.say(message)
engine.runAndWait()
output_message("请你在10~99之间随机选择一个数,给你2秒")
time.sleep(2)
output_message("想好了吗?现在,请将这个数减去个位,再减去十位,并且在下面的列表中找到结果对应的字母,")
output_message("如果找到了,请按回车键继续!")# 输出100个数对应的字母for i inrange(1,101):if i %9==0:# 如果为9的倍数# 输出固定字母print("{} 对应 {}".format(i, answer_word))else:print("{} 对应 {}".format(i, random.choice(words)))
wait =input("如果找到了,请按回车键继续")
output_message("好了,现在请把这个字母在心中默念3遍。")
time.sleep(2)
output_message("电脑已经知道了你的字母,就是...")
time.sleep(2)
output_message(answer_word)
output_message("对吗?")
3. 玩一玩
我想的数是67,结果如下:
请你在10~99之间随机选择一个数,给你2秒
想好了吗?现在,请将这个数减去个位,再减去十位,并且在下面的列表中找到结果对应的字母,
如果找到了,请按回车键继续!
1 对应 z
2 对应 g
3 对应 y
......53 对应 i
54 对应 f # 我的计算结果55 对应 u
.......98 对应 l
99 对应 f
100 对应 c
如果找到了,请按回车键继续
好了,现在请把这个字母在心中默念3遍。
电脑已经知道了你的字母,就是...
f
对吗?
结果还真是对的!赶快给你的同事朋友玩一玩吧!
好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!
版权归原作者 wangzirui32 所有, 如有侵权,请联系我们删除。