基于Python pygame简易版斗兽棋小游戏源代码

这篇具有很好参考价值的文章主要介绍了基于Python pygame简易版斗兽棋小游戏源代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Python pygame简易版斗兽棋小游戏源代码
游戏规则如下:

胜利条件:

1.吃掉对方全部棋子

2.走入对方兽穴(不可进入自己洞穴)
吃法:

1.象>狮>虎>豹>狼>狗>猫>鼠>象

2.同类棋子先行者吃掉对方

3.老鼠可以进河,老鼠在河里时,岸上的动物不能捕食他,他也不能捕食岸上的动物

4.狮\虎在河中没有老鼠阻挡时可以跳过河,并可吃掉对岸的较小的动物

5.进入敌方陷阱后,任意一个棋子都可以吃掉他。

基于Python pygame简易版斗兽棋小游戏源代码
main.py:主程序,控制游戏的进行状况

menu:创建图形界面

level:棋局进行中的主要类和方法

piece.py:棋子类,提供控制棋子的方法

board.py:生成棋盘

piece.json:储存了创建棋子实例的信息

完整程序代码下载地址:基于Python pygame简易版斗兽棋小游戏源代码

main.py

import sys
import pygame
import pygame_gui

from settings import *
from level import Level
from menu import Start_menu

class Game(object):
    def __init__(self):

        #窗口
        pygame.init()
        self.screen = pygame.display.set_mode(WINDOW_SIZE)
        pygame.display.set_caption('斗兽棋')
        self.clock = pygame.time.Clock()
        
        #Controller
        self.level = Level()
        self.start_menu_ = Start_menu()
        #游戏状态
        self.game_over = True    

    @property
    def controller(self):
        """ 根据游戏状态选择Controller """
        if self.game_over:
            return self.start_menu_
        else:
            return self.level

    def run(self):

        self.controller.game_over = self.game_over  #保证切换Controller后其状态与当前游戏状态一致
 
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

            if event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    self.controller.reponse_click(event.pos)

            if event.type == pygame_gui.UI_BUTTON_PRESSED:
                self.controller.reponse_button(event.ui_element)  
            self.controller.manager.process_events(event)
        

        delta_time = self.clock.tick(20) / 1000
        self.controller.run(delta_time)

        self.game_over = self.controller.game_over

        pygame.display.update()
        

if __name__ == '__main__':
    game = Game()
    while True:
        game.run()

board.py

import pygame
from settings import *

font = pygame.font.Font(FONT, 30)

class Board(pygame.sprite.Sprite):
    def __init__(self,group,width,height):
        super().__init__(group)
        self.width = width
        self.height = height

        self.image = pygame.Surface((width*50,height*50))
        self.rect = self.image.get_rect()
        self.draw_board()

    def draw_board(self):
        """ 绘制棋盘 """

        self.image.fill('white')

        #画格子
        for x in range(self.width):
            for y in range(self.height):
                pygame.draw.rect(self.image,"black", (x*50, y*50, 50, 50), 1)

        #河流
        for pos in RIVER:
            pygame.draw.rect(self.image,"deepskyblue",(pos[0]*50, pos[1]*50,50,50),0)
        #陷阱
        for t in TRAP:
            for pos in t:       
                trap_surface=font.render("陷",True,"blue","white")
                self.image.blit(trap_surface,(pos[0]*50+DETA_X, pos[1]*50+ DETA_Y))

        #兽穴
        for pos in HOME:
            home_surface = font.render("穴",True,"blue","white")
            self.image.blit(home_surface,(pos[0]*50+ DETA_X, pos[1]*50+ DETA_Y))
    
    def update(self):
        pass

基于Python pygame简易版斗兽棋小游戏源代码
完整程序代码下载地址:基于Python pygame简易版斗兽棋小游戏源代码文章来源地址https://www.toymoban.com/news/detail-406599.html

到了这里,关于基于Python pygame简易版斗兽棋小游戏源代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小游戏实战丨基于PyGame的贪吃蛇小游戏

    本期内容:基于pygame的贪吃蛇小游戏 下载地址:https://download.csdn.net/download/m0_68111267/88700188 实验环境 python3.11及以上 pycharm pygame 安装pygame的命令: pygame是一个开源的Python模块,专门用于编写电子游戏。它使用简单、功能强大,因此非常适合初学者入门。pygame的主要特点包括图

    2024年02月03日
    浏览(15)
  • 游戏开发丨基于Pygame的AI版贪吃蛇小游戏

    本期内容 基于pygame的AI版贪吃蛇小游戏 所需环境 python pycharm或anaconda pygame 下载地址 https://download.csdn.net/download/m0_68111267/88789665 本游戏使用Pygame模块开发,不需要玩家操纵贪吃蛇,贪吃蛇会自动吃掉屏幕上随机出现的食物,每吃一个食物贪吃蛇长度增加一节。如果贪吃蛇撞到

    2024年02月20日
    浏览(19)
  • 【python大作业】pygame实战(python编写2048小游戏)

    本文介绍基于pygame编写的2048小游戏程序 包含四个文件 运行效果: 点击此处下载完整程序,下载即可运行 其中config.py用于设置游戏参数 包括游戏窗口大小,刷新率,方块颜色等 game.py中定义了游戏实现的函数,设置方块的产生,移动与计算,并判断游戏进行的程度,判断游

    2024年02月13日
    浏览(19)
  • pygame飞机大战小游戏(python大作业)

      python大作业,在查看了老师给的链接发现教学视频不完整,所以借用了同学的《Python编程 从入门到实践》中的一个项目,学习模仿。 二、游戏具体介绍 这是一款由辉辉亲自打造的太空对战小游戏。 游戏背景:在广袤无垠的太空里有一群蓝精灵(不是)有一群邪恶的坏人,

    2024年02月11日
    浏览(13)
  • 使用Python+pygame实现贪吃蛇小游戏

    使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 给出两种实现。 第一种 运行效果如下: 游戏源码如下: 第二种 就不给出运行效果图了,你可以运行看看。 下面给出另一种实现源码: OK! 

    2024年01月16日
    浏览(21)
  • 【python】 pygame学习示例 --飞机大战小游戏制作

    python版本:3.8.5 所需模块:pygame random os pygame版本:20.1 开发环境:pycharm专业版 硬件环境:win11 8G内存以上 使用python的第三方库–pygame 制作飞机大战小游戏 小游戏的内容包括: 玩家player的移动 子弹的发射 陨石的随机掉落(包括旋转 大小 下落角度) 玩家 子弹 陨石的碰撞交互

    2024年02月04日
    浏览(20)
  • pygame超详细教程!!做python小游戏必看框架!

    # 导入需要的模块 # 定义一个游戏管理总类 # 定义一个check_event 方法用于阻塞事件,并在检测到\\\"QUIT\\\"事件时关闭窗口 # run 方法则是游戏的主循环,不断调用 check_event 方法, 加上flip()  , 每次添加新功能,即可更新画布 # 调用gm实例 到这里,我们就能做出一个空白的黑窗体了,

    2024年02月07日
    浏览(19)
  • Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码)

    Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码) 又是一年中秋至一花好月 圆夜,佳文当共鉴。Python+ pygame制作拼图小游戏; 制作一个自己的拼图小游戏,看看几步可以观赏到月亮。 官方活动入口 ​ 本文档是对Python语言制作拼图小游戏界面功能需求进行分析归

    2023年04月09日
    浏览(17)
  • Python编写简易猜数字小游戏

    下面是Python编写的简易猜数字小游戏: 运行该程序,即可开始游戏。程序会生成一个1~100之间的随机数字,然后逐渐提示你输入你的猜测。如果你猜错了,程序会提示你猜小了或猜大了,直到你猜中为止。游戏结束后,程序会告诉你你猜了多少次才猜中了。

    2024年03月28日
    浏览(17)
  • python实现简易数独小游戏

    起源 既然“数独”有一个字是“数”,人们也往往会联想到数学,那就不妨从大家都知道的数学家欧拉说起,但凡想了解数独历史的玩家在网络、书籍中搜索时,共同会提到的就是欧拉的“拉丁方块(Latin square)”。 拉丁方块的规则:每一行(Row)、每一列(Column)均含1

    2024年02月05日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包