要求
通过输入玩家姓名和选择电脑角色来开始游戏。游戏界面会提示玩家出拳的选项,包括石头、剪刀和布,玩家需要输入对应数字进行出拳,并与电脑角色进行对战。通过判断出拳结果,判断哪方胜利,直到玩家选择结束游戏为止。最终输出对战结果,包括对战总数、玩家胜利局数、电脑胜利局数和平局数,并根据胜负情况给出相应提示
要写出实现功能的代码,还要考虑代码的健壮性和可扩展性,以及代码的可读性和重构性等方面。在编写代码过程中,要注意代码的规范性,并遵循Python的编码规范,如变量命名要规范,注释要详细
要点
Ø 物角色:
- l 玩家,玩家出拳
- l 电脑,电脑角色出拳,使用random完成出拳操作
Ø 程序处理:
- l 使用多重判断语句,判断玩家与电脑角色输赢情况
- l 使用无限循环while实现多局对战
主要知识点
- 用户输入:使用
input
函数获取用户输入的玩家姓名和电脑角色选择。 - 随机数生成:使用
random.randint
函数生成随机的电脑角色和玩家出拳。 - 条件判断:根据玩家和电脑的出拳结果进行比较,判断胜负关系。
- 循环结构:通过
while True
循环实现多局游戏的对战。 - 计数器:使用变量
player_score
、computer_score
和total_score
记录玩家胜利局数、电脑胜利局数和总对战局数。
random.randint(a, b)
是Python标准库中的一个函数,它用于生成一个指定范围内的随机整数。参数a
表示范围的起始值,参数b
表示范围的结束值。该函数会返回一个在闭区间[a, b]内均匀分布的整数。也就是说,返回的整数可以包括
a
和b
本身。
代码实现
代码语言:python代码运行次数:13复制import random
#游戏界面设置
print('''--------------------------------------------------------------------------------
* * * * * * * * * * * * 欢迎来到4399游戏平台 * * * * * * * * * * * *
猜拳游戏一石头 剪刀 布
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
''')
#玩家昵称输入
player_name = input('请输入玩家姓名:')
#电脑角色选择
print('1.喜羊羊 2.懒羊羊 3.美羊羊 4.红太狼')
choice = eval(input('请选择电脑角色:'))
if choice==1:
computer_name='喜羊羊'
elif choice == 2:
computer_name='懒羊羊'
elif choice == 3:
computer_name ='美羊羊'
elif choice == 4:
computer_name ='红太狼'
else:
computer_name ='匿名'
print(player_name,'VS',computer_name)
#循环对战
player_score =0
computer_score =0
total_score=0
while True :
#玩家出拳
player_fist = eval(input('-----请出拳:(1.石头 2.剪刀 3.布'))
if player_fist ==1:
player_fist_name= '石头'
elif player_fist == 2:
player_fist_name ='剪刀'
elif player_fist ==3:
player_fist_name='布'
else:
player_fist_name = '石头'#其他数了默认为石头
player_fist=1
'''
print('输入错误,系统随机出拳中...')
player_fist= random.randint(1,3)
if player_fist== 1:
player_fist_name ='石头'
elif player_fist == 2:
player_fist_name ='剪刀'
else:
player fistname= '布'!1
'''
print('玩家' player_name '出拳为:' player_fist_name)
#电脑角色出拳
computer_fist = random.randint(1,3)
if computer_fist == 1:
computer_fist_name ='石头'
elif computer_fist == 2:
computer_fist_name ='剪刀'
elif computer_fist == 3:
computer_fist_name ='布'
print(computer_name '出拳为:' computer_fist_name)
#判断谁胜
if player_fist == computer_fist:
print('平局')
elif (player_fist==1 and computer_fist==2) or (player_fist==2 and computer_fist==3):
print('恭喜!!!玩家' player_name '胜!!!')
player_score =1
else:
print('很遗憾~电脑' computer_name '胜')
computer_score =1
total_score =1
answer=input('再来一局不? y/nn')
if answer =='n':
break
#输出对战结果
print('-------------------------对战结果---------------------------')
print('对战总数:',total_score,'局')
print('玩家' player_name '胜: ',player_score,'局')
print('电脑' computer_name '胜: ',computer_score,'局')
print('平局:',total_score-player_score-computer_score,'局')
if computer_score > player_score:
print('电脑' computer_name '胜,不服来战!')
elif player_score > computer_score:
print('玩家' player_name '胜1')
else:
print('平分秋色,平局!')
我们可以看出实验结果无异常,符合问题的提出能够正确的解决问题