当前课程知识点: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()

# 请别忘记对照评分标准核对你最终完成的程序


下一节:事件驱动编程

返回《Python 交互式程序设计导论》慕课在线视频列表

Python 交互式程序设计导论课程列表:

第0周

-课程简介

--课程简介

-A 课程视频(算数操作符及表达式)

--绪论

--Python交互式解释器使用方法

--PyCharm集成开发环境介绍

--算数操作符及表达式

-B 课程视频(变量及赋值)

--变量

--项目提交

--“我喜欢Python”热身小项目

-C 辅助视频(计算机结构、Python开发环境安装)

--Windows平台安装Python开发环境

--Mac平台安装Python开发环境

-D 辅助视频(如何提交项目)

--项目提交

-第0周--小测验

-本周项目:"我喜欢Python"

--项目发布、完成、提交及评分流程

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

--项目提交

第1周

-A 课程视频(函数)

--函数

--其它操作符

--随机函数

-B 课程视频(逻辑及表达式)

--逻辑值和比较

--条件

--编程技巧

--“老虎杠子鸡虫”游戏

-第1周--小测验

-本周项目:“老虎杠子鸡虫”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第2周

-A 课程视频(Python交互式应用)

--事件驱动编程

--事件可视化跟踪执行

--SimpleGUITk

--按钮

-B 课程视频(输入框、全局变量)

--输入框

--局部变量和全局变量

--编程技巧

--“猫咪藏在哪个房间”游戏

-第2周--小测验A

-第2周--小测验B

-本周项目:猫咪藏在哪个房间

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第3周

-A 课程视频(画布绘图)

--画布和图形绘制

--字符串处理

--绘图和计时器可视化跟踪执行

--图片和音效

-B 课程视频(计时器)

--计时器

--交互式绘图

--“神奇时钟”游戏

--编程技巧

-第3周--小测验A

-第3周--小测验B

-本周项目:“神奇时钟”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第4周

-A 课程视频(列表)

--列表

--键盘输入

--列表及变化可视化跟踪执行

--碰撞和反射

-B 课程视频(键盘控制)

--速度控制

--运动

--编程技巧

--“桌上冰球”游戏

-第4周--小测验A

-第4周--小测验B

-本周项目:“桌上冰球”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第5周

-A 课程视频(鼠标输入、列表进阶)

--鼠标输入

--Video

--Video

--Video

-B 课程视频(字典和图片)

--Video

--Video

--Video

--Video

-第5周--小测验A

-第5周--小测验B

-本周项目:“世界杯八强连连看”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第6周

-A 课程视频(类)

--面向对象编程(类和对象入门)

--面向对象编程(类和对象进阶)

--对象可视化跟踪执行

--华容道中的类

-B 课程视频(平铺图片)

--平铺图片

--理解对象

--编程技巧

--“华容道”游戏

-第6周--小测验A

-第6周--小测验B

-本周项目:“华容道”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第7周

-A 课程视频(类进阶及文件操作)

--集合

--文件操作

--文字块类

--处理停止的文字块

-B 课程视频(游戏状态控制)

--游戏记分规则

--游戏结束的条件及处理

--编程技巧

--“决战三字经”游戏

-第7周--小测验A

-第7周--小测验B

-本周项目:决战三字经

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

第8周

-A、课程视屏(精灵集合)

--Video

--精灵类

--战士类

--编程技巧

-B、课程视屏(动画)

--精灵碰撞

--精灵动画

--编程技巧

--保卫家园游戏

-第8周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

项目模板笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。