本文已参与[新人创作礼]活动,一起开启掘金创作之路
《python二维游戏编程》项目一:杠子老虎鸡虫
V0.0.2.20210629
项目简介
《python二维游戏编程》课后项目1
适用于中国农业出版社,张太红主编,2015版本
本人不慎丢失了该书的光盘,怀疑第二章往后的模板在光盘中,如果你有光盘或者有本书的第二个项目往后的模板,我需要你的帮助
题目要求简介
源代码
import random
gustures = ['虫子', '鸡', '老虎', '杠子']
def name_to_number(name):
if name in gustures:
return gustures.index(name)
else:
return -1
def number_to_name(num):
if num < gustures.__len__():
return gustures[num]
else:
return '所喊无效!'
def shut_out(name):
if name == '随机':
return random.randint(0, 3)
else:
return name_to_number(name)
def play_one_round(player1_name, player1_code, player2_name, player2_code, print_msg=True):
"""
:param player1_name:
:param player2_name:
:param player1_code:
:param player2_code:
:param print_msg:
"""
if player1_code >= gustures.__len__():
if print_msg:
print(player1_name + '玩家所喊无效!')
return -1
if player2_code >= gustures.__len__():
if print_msg:
print(player2_name + '玩家所喊无效!')
return -1
code_res = player1_code - player2_code
if code_res == 1 or code_res == -3:
res = 1
elif code_res == -1 or code_res == 3:
res = 2
else:
res = 0
if print_msg:
print(player1_name + '喊的为:' + number_to_name(player1_code))
print(player2_name + '喊的为:' + number_to_name(player2_code))
if res == 0:
print(player1_name + '和' + player2_name + '打成平手!')
elif res == 1:
print(player1_name + '获胜!')
else:
print(player2_name + '获胜!')
return res
def probability_calculate():
i = 0
player_win = [0, 0, 0]
while i < 128:
play_res = play_one_round('甲', shut_out('随机'), '乙', shut_out('随机'), print_msg=False)
player_win[play_res] += 1
i += 1
print('甲、乙随机比赛128次,验证对决结果的概率为')
print('甲方获胜的概率为:%f' % (float(player_win[1] / (player_win[0] + player_win[1] + player_win[1]))))
print('双方平局的概率为:%f' % (float(player_win[0] / (player_win[0] + player_win[1] + player_win[1]))))
print('甲方失败的概率为:%f' % (float(player_win[2] / (player_win[0] + player_win[1] + player_win[1]))))
random.seed()
probability_calculate()
使用说明
环境依赖:python3
维护说明
注意
关于作者
Autho: KiraSkyler Email: kiraskyler@outlook.com / kiraskyler@qq.com
贡献者/贡献组织
鸣谢
版权信息
该项目签署了GPL 授权许可,详情请参阅官网
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.
更新日志
- V0.0.0.20210101