当前课程知识点:Python 交互式程序设计导论 > 第1周 > 本周项目:“老虎杠子鸡虫”游戏 > 项目模板
返回《Python 交互式程序设计导论》慕课在线视频课程列表
# “杠子老虎鸡虫”游戏小项目程序模板
# 该程序的关键点是把“虫子”、“鸡”、“老虎”、“杠子”映射为以下数字:
# 0 - 虫子
# 1 - 鸡
# 2 - 老虎
# 3 - 杠子
import random # 包含random.randrange(start, stop)函数的模块
# 辅助函数
def name_to_number(name):
# 用if/elif/else将name转换为对应数字代码,-1表示name无效
# 添加你自己的代码后删除pass
pass
def number_to_name(number):
# 用if/elif/else将数字代码number转换为对应的字符名称,number无效时返回"所喊无效!"
# 添加你自己的代码后删除pass
pass
def shout_out(name):
# name参数可以为“随机”、“杠子”、“老虎”、“鸡”或“虫子”,返回对应喊拳的数字代码
# 添加你自己的代码后删除pass
pass
def play_one_round(player1_name, player1_code, player2_name, player2_code, print_msg = True):
#游戏的主要逻辑在该函数中实现
# 添加你自己的代码后删除pass
pass
# 验证概率理论
def result_probability():
#变量声明及初始化
play_times = 0 # 对决总次数
player1_win_times = 0 # 甲方获胜次数
player1_loss_times = 0 # 甲方失败次数
tie_times = 0 # 双方平局次数
# 第1次对决
result = play_one_round("甲", shout_out("随机"), "乙", shout_out("随机"), False)
play_times = play_times + 1
if result == 0:
tie_times = tie_times + 1
elif result == 1:
player1_win_times = player1_win_times + 1
else:
player1_loss_times = player1_loss_times + 1
# 第2次对决
result = play_one_round("甲", shout_out("随机"), "乙", shout_out("随机"), False)
play_times = play_times + 1
if result == 0:
tie_times = tie_times + 1
elif result == 1:
player1_win_times = player1_win_times + 1
else:
player1_loss_times = player1_loss_times + 1
# 第3次对决
result = play_one_round("甲", shout_out("随机"), "乙", shout_out("随机"), False)
play_times = play_times + 1
if result == 0:
tie_times = tie_times + 1
elif result == 1:
player1_win_times = player1_win_times + 1
else:
player1_loss_times = player1_loss_times + 1
# 第4次对决
result = play_one_round("甲", shout_out("随机"), "乙", shout_out("随机"), False)
play_times = play_times + 1
if result == 0:
tie_times = tie_times + 1
elif result == 1:
player1_win_times = player1_win_times + 1
else:
player1_loss_times = player1_loss_times + 1
#你可以在这里添加更多的对决来验证概率理论计算的结果
player1_win_prob = player1_win_times / play_times # 甲方获胜概率
tie_prob = tie_times / play_times # 双方平局概率
player1_loss_prob = player1_loss_times / play_times # 甲方失败概率
print("") # 输出空白行
print("甲乙随机比赛"+str(play_times)+"次,验证对决结果的概率为:")
print("甲方获胜的概率为:" + str(player1_win_prob))
print("双方平局的概率为:" + str(tie_prob))
print("甲方失败的概率为:" + str(player1_loss_prob))
# 以下为测试代码,请在你提交的程序中保留以下代码
# 测试name_to_number()函数
print(name_to_number('虫子'))
print(name_to_number('鸡'))
print(name_to_number('老虎'))
print(name_to_number('杠子'))
print(name_to_number('豹子'))
# 测试number_to_name()函数
print(number_to_name(0))
print(number_to_name(1))
print(number_to_name(2))
print(number_to_name(3))
print(number_to_name(10))
# 测试shout_out()函数
print(shout_out("随机"))
print(shout_out("虫子"))
print(shout_out("鸡"))
print(shout_out("老虎"))
print(shout_out("杠子"))
print(shout_out("棍子"))
# 测试play_one_round()函数
result1 = play_one_round("计算机", 1, "玩家", 1)
print(result1)
result2 = play_one_round("张太红", 2, "白涛", 3)
print(result2)
result3 = play_one_round("甲", 3, "乙", 1)
print(result3)
result4 = play_one_round("A", 2, "B", 1)
print(result4)
print(play_one_round("A", 4, "B", 1))
print(play_one_round("张太红", shout_out("随机"), "白涛", shout_out("随机")))
print(play_one_round("张太红", shout_out("老虎"), "白涛", shout_out("虫子")))
print(play_one_round("计算机", shout_out("随机"), "糊涂玩家", shout_out("豹子"), False))
print(play_one_round("计算机", shout_out("随机"), "糊涂玩家", shout_out("豹子")))
# 测试result_probability()函数
result_probability()
# 请别忘记对照评分标准核对你最终完成的程序
-课程简介
--课程简介
-A 课程视频(算数操作符及表达式)
--绪论
-B 课程视频(变量及赋值)
--变量
--项目提交
-C 辅助视频(计算机结构、Python开发环境安装)
-D 辅助视频(如何提交项目)
--项目提交
-第0周--小测验
-本周项目:"我喜欢Python"
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
--项目提交
-A 课程视频(函数)
--函数
--其它操作符
--随机函数
-B 课程视频(逻辑及表达式)
--逻辑值和比较
--条件
--编程技巧
-第1周--小测验
-本周项目:“老虎杠子鸡虫”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(Python交互式应用)
--事件驱动编程
--按钮
-B 课程视频(输入框、全局变量)
--输入框
--编程技巧
-第2周--小测验A
-第2周--小测验B
-本周项目:猫咪藏在哪个房间
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(画布绘图)
--画布和图形绘制
--字符串处理
--图片和音效
-B 课程视频(计时器)
--计时器
--交互式绘图
--“神奇时钟”游戏
--编程技巧
-第3周--小测验A
-第3周--小测验B
-本周项目:“神奇时钟”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(列表)
--列表
--键盘输入
--碰撞和反射
-B 课程视频(键盘控制)
--速度控制
--运动
--编程技巧
--“桌上冰球”游戏
-第4周--小测验A
-第4周--小测验B
-本周项目:“桌上冰球”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(鼠标输入、列表进阶)
--鼠标输入
--Video
--Video
--Video
-B 课程视频(字典和图片)
--Video
--Video
--Video
--Video
-第5周--小测验A
-第5周--小测验B
-本周项目:“世界杯八强连连看”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类)
--华容道中的类
-B 课程视频(平铺图片)
--平铺图片
--理解对象
--编程技巧
--“华容道”游戏
-第6周--小测验A
-第6周--小测验B
-本周项目:“华容道”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类进阶及文件操作)
--集合
--文件操作
--文字块类
--处理停止的文字块
-B 课程视频(游戏状态控制)
--游戏记分规则
--编程技巧
-第7周--小测验A
-第7周--小测验B
-本周项目:决战三字经
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板
-A、课程视屏(精灵集合)
--Video
--精灵类
--战士类
--编程技巧
-B、课程视屏(动画)
--精灵碰撞
--精灵动画
--编程技巧
--保卫家园游戏
-第8周--小测验
-本周项目:守卫家园
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板