《python二维游戏编程》项目一:杠子老虎鸡虫
V0.0.2.20210629
项目简介
《python二维游戏编程》课后项目1
适用于中国农业出版社,张太红主编,2015版本
本人不慎丢失了该书的光盘,怀疑第二章往后的模板在光盘中,如果你有光盘或者有本书的第二个项目往后的模板,我需要你的帮助
题目要求简介
源代码
<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="python" cid="n12" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.8rem; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: var(--codeboxes); position: relative !important; border-radius: 0.3rem; color: rgb(12, 12, 12); padding: 8px 1.5rem 6px; margin-bottom: 1.5rem; margin-top: 1.5rem; width: inherit; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">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 < 1280:
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()</pre>
使用说明
环境依赖: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 https://www.gnu.org/licenses/.
更新日志
- V0.0.0.20210101