Python 人机PK小游戏之使用类和对象实现版

PK小游戏:创建一个User类代表用户,然后创建2个用户,分别表示玩家和电脑。用户血量和攻击力属性值随机(例如血量50-60,攻击力10-15)。血量在创建用户时固定,攻击力在每次攻击时都随机生成。
开始后用户每按一次回车代表进行一次互相攻击,直至一方血量小于或等于零

import random
class User:
    #定义两个属性
    player = '玩家'
    computer = '电脑'
    def _init_(self,name):
        self.name = name
        
    def game_prepare(self):
        print('----游戏开始----')
        i = 0
        #循环两次创建用户,并随机取生命值
        for i in range(0,2):
            i = i+1
            self.life = random.randint(50, 60)
            print('创建第%d位用户\n血量为%d' % (i,self.life))
            choose = int(input('请输入用户%d的角色(0代表电脑,1代表玩家)' % (i)))
            if choose == 0:
                self.computer_life = self.life
                print('已选择%s\n' % self.computer)
            elif choose == 1:
                self.player_life = self.life
                print('已选择%s\n' % self.player)
                    
    def game_start(self):
        print('----准备完毕----\n')
        input('点击回车开始互相攻击\n')
        #比较玩家和电脑的生命值
        while self.player_life > 0 and self.computer_life > 0:
            #定义玩家和电脑的攻击值,取随机数
            player_attack = random.randint(10,15)
            computer_attack = random.randint(10,15)
            #得到电脑和玩家互相攻击后的剩余血量
            self.player_life = self.player_life - computer_attack
            self.computer_life = self.computer_life - player_attack
            print('玩家对电脑造成%d伤害,现在电脑血量为%d' % (player_attack,self.computer_life)) 
            print('电脑对玩家造成%d伤害,现在玩家血量为%d' % (computer_attack,self.player_life))
            input('==================')
        #判断胜负
        if self.player_life <= 0 and self.computer_life > 0:
            print('\n====电脑获胜====!')
        elif self.player_life > 0 and self.computer_life <= 0:
            print('\n====玩家获胜====' )
        else:
            print('\n====我的天,同归于尽====!')
            
#创建User的实例game
game = User()
#调用实例方法
game.game_prepare()
game.game_start()

 运行结果:

----游戏开始----
创建第1位用户
血量为57
请输入用户1的角色(0代表电脑,1代表玩家)0
已选择电脑

创建第2位用户
血量为56
请输入用户2的角色(0代表电脑,1代表玩家)1
已选择玩家

----准备完毕----

点击回车开始互相攻击

玩家对电脑造成13伤害,现在电脑血量为44
电脑对玩家造成14伤害,现在玩家血量为42
==================
玩家对电脑造成15伤害,现在电脑血量为29
电脑对玩家造成12伤害,现在玩家血量为30
==================
玩家对电脑造成14伤害,现在电脑血量为15
电脑对玩家造成15伤害,现在玩家血量为15
==================
玩家对电脑造成11伤害,现在电脑血量为4
电脑对玩家造成13伤害,现在玩家血量为2
==================
玩家对电脑造成13伤害,现在电脑血量为-9
电脑对玩家造成10伤害,现在玩家血量为-8
==================

====我的天,同归于尽====!

 

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页