找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 2316|回复: 1

中A: Finger项目

[复制链接]

28

主题

91

回帖

2715

积分

超级版主

积分
2715
发表于 2-26-2025 19:25:57 | 显示全部楼层 |阅读模式
本帖最后由 liuyi 于 3-10-2025 18:45 编辑


Finger游戏可以看作是“石头剪子布”的升级版。
石头剪子布是绕圈胜负模型:石头 KO 剪刀,剪刀 KO 布,布 KO 石头。
Finger也是绕圈胜负数学模型:大拇指压食指...无名指压小指头,小指又压大拇指。按照规则,相邻的手指才有胜负,出招一样,或不相邻,都算平局。
在程序代码里,按数字键12345代表从大拇指、食指到小指的5个指头,然后产生的pNum = event.key - ord('1'),实际就是1~5的ASCII码减去1的ASCII码,那么就得到0~4这5个数字。

参考上图
左边是石头剪子布的“绕圈胜负”的pNum VS cNum示意图,3个出招cycle=3
右边是Finger的“绕圈胜负”的pNum VS cNum示意图,5个出招cycle=5
作业首先要求输入并调试代码(在本贴最后),然后补全count_finger函数

count_finger函数实际就是“数手指、判断胜负”,输入参数为pNum和cNum。要求用课堂讲解的石头剪子布的“同余模型”来判断胜负。
pNum, cNum变量一样,数学模型也一样,因此if语句写出来应该基本差不多。
注意判断胜负后不需要print,而是按照注释所写retrun不同内容

首先请把finger.zip解压缩在本地硬盘,然后一定注意自己的Python程序文件也要在\\finger文件夹里,这一点请严格注意!
因为如果finger.py文件不在\\finger文件夹内,运行后就找不到资源文件会报错,比如图片和font文件。
finger.zip里包含以下文件:
  background.jpg     游戏底图
  simkay.ttf             楷体字font文件
  LFinger0~4.bmp   左手手指图片
  RFinger0~4.bmp   右手手指图片


这是V1.0的代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

1

回帖

4

积分

提示词程序员

积分
4
发表于 3-21-2025 23:10:28 | 显示全部楼层
本帖最后由 刘自远 于 3-21-2025 23:13 编辑

        











您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 5-10-2025 20:26 , Processed in 0.062605 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表