python双人对决小游戏

python初学者,刚学到面向对象...

#双人对决
'''
name=玩家的名字;
hp基本属性固定100;
stochastic()玩家技能攻击,随机伤害5-29,随机到30再次给予10伤害
cut()普通攻击,固定伤害10
blood()增加血量,随机8-19,随机到20直接回复30血量
def boss()函数决定电脑攻击模式,3/5概率出普通攻击,1/5概率回血和咸鱼突刺
'''
import time #导入时间的包
import random   #导入随机模块
class Hero:
    def __init__(self,name):    #初始函数
        self.name=name  #初始角色名
        self.hp=100     #初始血量
    def __str__(self):  #直接打印对象,返回str类型,否则默认指向内存地址
        return '【%s】血量值:%s'%(self.name,self.hp)
    def stochastic(self,enemy):    #设置技能攻击
        hurt=random.randint(5,30) # 设置技能随机伤害
        enemy.hp-=hurt    #敌人随机减少血量
        if hurt<=20:
            print('{}对{}使用技能造成了伤害 -{}!'.format(self.name,enemy.name,hurt))
        elif hurt>20 and hurt<30:
            print('{}对{}使用技能造成了暴击 -{}!!'.format(self.name,enemy.name,hurt))
        elif hurt==30:
            print('{}对{}使用出了会心一击!!! -{}'.format(self.name,enemy.name,hurt))
            enemy.hp-=10
            print('会心一击造成二次伤害! -10')
    def cut(self,enemy):   #设置普通攻击
        enemy.hp -= 10  #敌人固定减掉10滴血
        print('{}捅了{}一刀,-10。'.format(self.name, enemy.name))
    def blood(self):    #设置回血技能
        hp_rs=random.randint(8, 20)  #设置回血随机数
        if hp_rs<20:
            self.hp+=hp_rs  #随机数回血
            print('{}使用了回血技能,增加{}血!'.format(self.name,hp_rs))
        else:
            self.hp+=30
            print('{}触发了天籁之音,增加30血!'.format(self.name))
def boss(): #设置BOSS模式函数
    cpu_rs=random.randint(1, 5)
    if cpu_rs==1 or cpu_rs==2 or cpu_rs==3:
        xyw.cut(player)
    elif cpu_rs==4:
        xyw.blood()
    else:
        print('咸鱼王使用了奥义,对你造成2连击!!\n咸鱼王:吃我咸鱼突刺!!\n{} -12\n{} -13'.format(player.name,player.name))
        player.hp-=25
#创建2个实例化对象
player=Hero('玩家')
xyw=Hero('咸鱼王')
print('欢迎玩家挑战咸鱼王,双方初始血量100,准备开始吧!')
while True:
    if player.hp <= 0 and xyw.hp <= 0:  #双方血量同时低于0退出游戏
        time.sleep(1)  # 休眠暂停一秒钟
        print('-' * 30)  # 分隔符
        print('你们同归于尽了...')
        break
    elif xyw.hp <= 0:     #咸鱼王血量低于0退出游戏
        time.sleep(1)  # 休眠暂停一秒钟
        print('-' * 30)  # 分隔符
        print('咸鱼王死了...')
        print(player)   #打印玩家血量
        time.sleep(1)  # 休眠暂停一秒钟
        print('恭喜玩家获得胜利!')
        break
    elif player.hp <= 0:  #玩家血量低于0退出游戏
        time.sleep(1)  # 休眠暂停一秒钟
        print('-' * 30)  # 分隔符
        print('你死了...')
        print(xyw)  # 打印咸鱼王血量
        time.sleep(1)  # 休眠暂停一秒钟
        print('咸鱼王对你发出了嘲讽...')
        break
    print('-' * 30) #分隔符
    print(player)   #打印玩家血量
    print(xyw)  #打印咸鱼王血量
    print('-' * 30) #分隔符
    userIn = int(input('(1)普通攻击(2)技能攻击(3)加血技能,请输入数字:'))
    if userIn == 1:
        player.cut(xyw) #玩家砍了咸鱼王一刀
        print('咸鱼王准备中...')
        time.sleep(1)   #休眠暂停一秒钟
        boss()  #调用咸鱼王模式函数
    elif userIn == 2:
        player.stochastic(xyw) #玩家使用技能攻击咸鱼王
        print('咸鱼王准备中...')
        time.sleep(1)   #休眠暂停一秒钟
        boss()  #调用咸鱼王模式函数
    elif userIn == 3:
        player.blood()     #玩家使用回血技能
        print('咸鱼王准备中...')
        time.sleep(1)   #休眠暂停一秒钟
        boss()  # 调用咸鱼王模式函数
    else:
        print('输入有误,请重新输入。')
time.sleep(1)   #休眠暂停一秒钟
print('GAME OVER')

 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PythonPygame是一个用Python编写的游戏开发库,可以用于开发各种类型的游戏,包括双人小游戏。 为了开发一个双人小游戏,我们可以使用PythonPygame的图形和动画功能来创建游戏界面,并使用Pygame的事件处理功能来处理玩家的输入。 在游戏的开始,我们可以创建两个角色(玩家),每个角色都有自己的属性,例如生命值和攻击力。两个角色可以在游戏界面中移动,使用键盘控制。通过监听按键事件,我们可以根据玩家的输入来实现角色的移动,例如按下"上"键可以使角色向上移动。 接下来,我们可以添加一些游戏元素,例如障碍物或宝箱。角色可以与这些元素进行交互,例如碰撞障碍物会减少生命值,打开宝箱可能获得一些奖励。 为了增加游戏的趣味性,我们可以添加一些游戏规则和胜利条件,例如设置一个目标,当其中一个角色达到目标时游戏结束,或者设置时间限制,在时间到达后游戏结束。 在游戏过程中,我们可以使用Pygame的图形和音效功能来增强游戏的体验,例如显示角色的动画和血量条,以及播放背景音乐和音效。 最后,我们可以使用PythonPygame的数据存储功能来保存游戏的进度和成绩,例如玩家的最高分数或通关记录。 总之,PythonPygame可以提供丰富的功能和灵活性,帮助我们实现双人小游戏的开发。通过使用Pygame的各种功能,我们可以创造出有趣和富有挑战的游戏体验。 ### 回答2: PythonPygame 是一个用于创建基于 Python 的游戏和多媒体应用程序的库,可以方便地实现双人小游戏双人小游戏通常需要两个玩家之间进行交互,同时运行两个游戏实例。下面是一个简单的示例。 首先,我们需要导入 Pygame 库并初始化游戏: ``` import pygame pygame.init() # 设置游戏窗口的大小 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("双人游戏") # 游戏循环 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.quit() ``` 接下来,我们可以创建两个小球作为玩家,并使用键盘控制它们的移动: ``` class Player: def __init__(self, x, y, color, up_key, down_key, left_key, right_key): self.x = x self.y = y self.color = color self.up_key = up_key self.down_key = down_key self.left_key = left_key self.right_key = right_key def move(self, keys): if keys[self.up_key]: self.y -= 1 if keys[self.down_key]: self.y += 1 if keys[self.left_key]: self.x -= 1 if keys[self.right_key]: self.x += 1 player1 = Player(screen_width/4, screen_height/2, (255, 0, 0), pygame.K_w, pygame.K_s, pygame.K_a, pygame.K_d) player2 = Player(screen_width*3/4, screen_height/2, (0, 0, 255), pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT) players = [player1, player2] # 游戏循环 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False keys = pygame.key.get_pressed() for player in players: player.move(keys) screen.fill((255, 255, 255)) for player in players: pygame.draw.circle(screen, player.color, (player.x, player.y), 10) pygame.display.flip() pygame.quit() ``` 上述代码创建了两个玩家,使用 W、S、A、D 键控制 Player1 的移动,使用四个方向键控制 Player2 的移动。玩家的移动通过键盘事件获取,每帧更新玩家的位置,并在屏幕上绘制两个小球。 通过以上代码,我们可以创建一个简单的双人小游戏,其中两个玩家可以通过键盘控制自己的小球移动。当然,我们可以通过增加逻辑和添加更多的游戏元素,使游戏更加丰富。 ### 回答3: PythonPygame是一款开源的Python库,它提供了一系列用于开发游戏的函数和工具。利用PythonPygame,我们可以创建各种类型的游戏,包括双人小游戏双人小游戏是一种适合朋友、兄弟姐妹或者情侣一起玩的游戏。在PythonPygame中创建双人小游戏需要以下步骤: 1. 导入所需的库:使用import语句导入PythonPygame库以及其他必要的库。 2. 初始化游戏:调用pygame.init()函数初始化游戏,并设置游戏窗口的大小和标题。 3. 创建游戏角色:使用pygame.sprite.Sprite类创建游戏角色,并设置它们的初始位置、速度和外观。 4. 处理用户输入:使用pygame.event.get()函数获取用户输入事件,并根据用户的输入来控制游戏角色的移动。 5. 更新游戏状态:在主循环中更新游戏状态,包括游戏角色的位置、碰撞检测、得分等。 6. 绘制游戏画面:使用pygame的绘图函数将游戏角色、背景等绘制到游戏窗口上。 7. 检测游戏结束:在主循环中检测游戏是否结束,例如角色是否被消灭、游戏时间是否结束等。 8. 显示游戏结果:在游戏结束后,根据游戏结果显示不同的界面,例如胜利或失败画面。 9. 退出游戏:在游戏结束后,调用pygame.quit()函数退出游戏。 通过以上步骤,我们可以创建一个简单的双人小游戏。例如,可以创建一个双人射击游戏,其中一个玩家控制飞机,另一个玩家控制敌机,双方可以互相射击并计算得分。通过不断调整游戏角色的速度、碰撞检测的逻辑和绘制图形的方法,可以逐步完善游戏的功能和体验。 总之,PythonPygame提供了一种相对简单而灵活的方式来开发双人小游戏。通过学习和掌握PythonPygame的相关知识,我们可以开发出富有创意和趣味性的双人小游戏,并与朋友一起度过愉快的时光。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值