人机猜拳比赛
完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑通过程序中的随机数实现出拳,每一局结束后都要输出结果。当用户输入n时停止游戏,并输出总结果。#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# 人和机器猜拳游戏
# 选择角色1 曹操 2张飞 3 刘备
# 角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
# 电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n
# 输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random
# 写法--------1
class ren():
def __init__(self):
print("-----------人机大战-------------\\n")
name = ""
while 1:
js = input("输入要选择的角色:\\n\\n1---曹操 2---张飞 3---关羽")
if js.isdigit():
js = int(js)
if js == 1:
print("玩家角色为---曹操")
self.name = "曹操"
break
elif js == 2:
print("玩家角色为---张飞")
self.name = "张飞"
break
elif js == 3:
print("玩家角色为---关羽")
self.name = "关羽"
break
else:
print("角色选择错误,请从新选择----\\n")
else:
print("输入角色有误!请从新输入----\\n")
def caiquan(self):
while 1:
quan = input("请输入要出拳的选项:\\n1----石头 2----剪刀 3----布")
if quan.isdigit():
quan = int(quan)
if quan == 1:
print("玩家选择出----石头", )
break
elif quan == 2:
print("玩家选择出----剪刀")
break
elif quan == 3:
print("玩家选择出---- 布")
break
else:
print("选择错误!请从新选择!\\n")
else:
print("输入数字不正确!请重新输入------\\n")
return quan
class dian():
diannao = "电脑"
def suiji(self):
suijishu = random.randint(1, 3)
if suijishu == 1:
print("电脑选择出----石头")
elif suijishu == 2:
print("电脑选择出----剪刀")
else:
print("电脑选择出---- 布")
return suijishu
class zhixuan():
chuquan1 = 0
chuquan2 = 0
chuquan3 = 0
def __init__(self):
renduixiang = ren() # ren类 对象
diannaoduixiang = dian() # dian类 对象
while 1:
caiquanjieguo = renduixiang.caiquan()
diannaojieguo = diannaoduixiang.suiji()
if caiquanjieguo == 1 and diannaojieguo == 2 or \\
caiquanjieguo == 2 and diannaojieguo == 3 or \\
caiquanjieguo == 3 and diannaojieguo == 1:
print("----------玩家赢!")
self.chuquan1 += 1
elif caiquanjieguo == diannaojieguo:
print("----------平局!")
self.chuquan3 += 1
else:
print("----------电脑赢!")
self.chuquan2 += 1
if input("是否继续游戏:yes or no ?\\n任意键------n\\n").lower() == "n":
break
if self.chuquan1 > self.chuquan2:
wanjiaying = "玩家胜利!"
elif self.chuquan1 == self.chuquan2:
wanjiaying = "平---局"
else:
wanjiaying = "电脑胜利"
print("-----------------人机大战----------------\\n游戏结束 :\\n"
"玩家共赢{0}次---电脑共赢{1}次---平局次数{2}次\\n————总结果为 : {3}" \\
.format(self.chuquan1, self.chuquan2, self.chuquan3, wanjiaying))
duixiang1 = zhixuan() # 生成的对象 未保存到变量中
python 人机猜拳运行结果