Python编程:人机大战之划拳游戏
题目:
- 用面向对象的思想
- 玩家猜拳:1 剪刀 2 石头 3 布 玩家输入一个1-3的数字
电脑出拳:随机产生一个1-3的数字,提示电脑出拳结果
本局对战结束,输出谁赢,是否继续 - 输出结果:玩家赢几局 电脑赢几局 平局几次 游戏结束
代码:
import random
class person():
def play(self):
while True:
finger = input("请输入要出拳的选项:\n1---石头 2---剪刀 3---布\n")
if finger.isdigit():
finger = int(finger)
if finger == 1:
print("[玩家]选择出---石头")
break
elif finger == 2:
print("[玩家]选择出---剪刀")
break
elif finger == 3:
print("[玩家]选择出--- 布 ")
break
else:
print("输入数字有误!请重新输入---")
else:
print("输入选项有误!请输入数字---")
return finger
class computer():
def stochastic(self):
random_number = random.randint(1,3)
if random_number == 1:
print("[电脑]选择出---石头")
elif random_number == 2:
print("[电脑]选择出---剪刀")
else:
print("[电脑]选择出--- 布 ")
return random_number
class process():
print("---------------人机大战---------------\n")
case1 = 0
case2 = 0
case3 = 0
def _init_(self):
person_object = person()
computer_object = computer()
while True:
person_result = person_object.play()
computer_result = computer_object.stochastic()
if person_result == 1 and computer_result == 2 or \
person_result == 2 and computer_result == 3 or \
person_result == 3 and computer_result == 1:
print("------------------------玩家赢!")
self.case1 += 1
elif person_result == computer_result:
print("------------------------ 平局! ")
self.case2 += 1
else:
print("------------------------电脑赢!")
self.case3 += 1
if input("是否继续游戏:yes or no ?\n按任意键继续,输入n或者N结束游戏\n").lower()=="n":
break
if self.case1 > self.case3:
result = "玩家胜利!"
elif self.case1 == self.case3:
result = "平局"
else:
result = "电脑胜利"
print("---------------人机大战---------------\n游戏结束:\n"
"玩家共赢{0}次---电脑共赢{1}次---平局次数{2}次\n---总结果为:{3}"\
.format(self.case1,self.case3,self.case2,result))
game_object = process()._init_()