猜拳游戏(基于python面向对象3)

第3阶段:

编写游戏类实现一局对战(Game)
需求
  1 属性有Person ,Computer,对战次数count
  2 行为有准备工作(init)
    开始游戏界(startGame)面如下
    ----------------欢迎来到猜拳游戏---------------
    规则是:1.剪刀 2.石头 3.
    请输入你的大名:xx
    请选择对方角色(1:德玛 2:提莫 3:潘森):
    1
    你选择了德玛和你pk !!
    是否现在开始(y/n):
    y

    你出拳: 剪刀
    德玛出拳: 
    恭喜xx,你赢了

代码如下:

# 游戏类
from Person import Person
from Computer import Computer

class Game():

    def __init__(self,person,computer,count):
        self.person = person
        self.computer= computer
        self.count= count

    def startGame(self):
        print("----------------欢迎来到猜拳游戏---------------")
        print("规则是:1.剪刀 2.石头 3.布")
        username = input("请输入你的大名:")
        #重置用户的名字
        self.person.name= username

        roule = input("请选择对方角色(1:德玛 2:提莫 3:潘森):")

        if roule=="1":
            print("你选择了德玛和你pk !!")
            self.computer.name='德玛'
        elif roule=="2":
            print("你选择了提莫和你pk !!")
            self.computer.name = '提莫'
        elif roule=="3":
            print("你选择了潘森和你pk !!")
            self.computer.name = '潘森'
        falg = input("是否现在开始(y/n):")
        if(falg=='y'):
            #各自出拳
            number1 = self.person.showFist()
            number2 = self.computer.showFist()
            #判断结果
            if(number1==number2):
                print("平局")
            elif((number1==1 and number2==3 ) or (number1==2 and number2==1)or (number1==3 and number2==2)):
                print(self.person.name,"胜利")
            else:
                print(self.computer.name,"胜利")

p = Person('a',0)
c = Computer('a',0)
g = Game(p,c,0)
g.startGame()


  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简单的Python面向对象猜拳游戏示例: ```python import random class Player: def __init__(self, name): self.name = name self.score = 0 def choose_gesture(self): pass class Human(Player): def choose_gesture(self): gesture = input("Choose your gesture (rock/paper/scissors/lizard/spock): ").lower() while gesture not in ['rock', 'paper', 'scissors', 'lizard', 'spock']: gesture = input("Invalid gesture. Choose again (rock/paper/scissors/lizard/spock): ").lower() return gesture class Computer(Player): def choose_gesture(self): return random.choice(['rock', 'paper', 'scissors', 'lizard', 'spock']) class Game: def __init__(self): self.player1 = Human("You") self.player2 = Computer("Computer") def determine_winner(self, gesture1, gesture2): if gesture1 == gesture2: print("Tie!") elif (gesture1 == 'rock' and gesture2 in ['scissors', 'lizard']) or \ (gesture1 == 'paper' and gesture2 in ['rock', 'spock']) or \ (gesture1 == 'scissors' and gesture2 in ['paper', 'lizard']) or \ (gesture1 == 'lizard' and gesture2 in ['paper', 'spock']) or \ (gesture1 == 'spock' and gesture2 in ['rock', 'scissors']): self.player1.score += 1 print(f"{self.player1.name} wins!") else: self.player2.score += 1 print(f"{self.player2.name} wins!") def play_game(self): print("Let's play Rock-Paper-Scissors-Lizard-Spock!") while True: gesture1 = self.player1.choose_gesture() gesture2 = self.player2.choose_gesture() print(f"{self.player1.name} chooses {gesture1}") print(f"{self.player2.name} chooses {gesture2}") self.determine_winner(gesture1, gesture2) print(f"{self.player1.name}: {self.player1.score} - {self.player2.name}: {self.player2.score}") play_again = input("Play again? (y/n): ").lower() if play_again != 'y': break print("Thanks for playing!") if __name__ == '__main__': game = Game() game.play_game() ``` 该游戏使用了三个类:`Player`,`Human`和`Computer`。`Player`类是一个基类,它定义了一个玩家应该具有的属性和方法,例如`name`和`score`属性,以及`choose_gesture()`方法。`Human`和`Computer`类都继承自`Player`类,并实现了`choose_gesture()`方法。 `Game`类用于实现游戏机制,包括决定胜者和打印分数等。`play_game()`方法是游戏的主要逻辑,其中包括循环直到玩家退出游戏。 您可以通过运行此代码来尝试游戏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值