1941| 0
|
【临沂】剪刀石头布小游戏 |
做到头秃的一节课。实现效果是:树莓派连接三个按钮控制人的出拳,电脑随机出拳。不同的游戏结果对应不同的灯光,人胜利亮绿灯,电脑胜利亮蓝灯,平手黄灯。OLED屏幕显示对战结果(这里本应该是显示图片,节省时间就用了文字)。 使用到了列表,函数,循环,条件,整个作品是循序渐渐的。 第一步:假定1是石头,2是剪刀,3是布。一开始我有点迷惑,认为设定数字代表不同的出拳太过抽象,应该用文本表达更清晰。其实是方便让计算机随机出拳,用文本代表应该也可以,程序可能会长一点。 第二步:人和电脑都随机出拳。输出信息有人的出拳情况,电脑出拳情况,对战结果。对战结果这里我没用数字代表,用了不同的文本,而事实证明后期我还得改成数字。 第三步:添加灯效 有两种办法,普通版和列表版。由于小灯的数字口并不是连续的,所以定义一个列表用来设置小灯初始状态为灭。 我的设置是5号黄灯代表平手,6号绿灯代表人赢,12号蓝灯代表电脑赢。 把判决1修改了,输出结果也是1/2/3这些数字,方便引用列表。 第四步:优化人的出拳。 利用不同数字口的按钮代表石头剪子布。24-光敏代表出石头,25按钮代表出剪刀,21按钮代表出剪刀。为啥我用了一个光敏传感器呢?因为我只有两个按钮,按钮不够,光敏来凑,哈哈。 第五步:添加OLED 加上OLED显示,需要准备9张不同出拳的图片,方便起见我全弄成了文字。主函数没有变,指示灯(列表)函数添加了显示OLED的语句,判决函数添加了不同出拳的文字。 完整的代码是这个样子的 最后效果大概就是这样,人出石头,电脑出石头,平局黄灯亮。 其实最后程序做出来看一看也没有太难。这节课主讲老师的风格就是程序尽量简短,所以就不那么好懂。最后添加OLED的语句都是拆分到两个函数里面,有点点抽象,我的脑袋瓜就不够用了。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed