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

胜利条件:

1.吃掉对方全部棋子

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

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

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

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

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

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


main.py:主程序,控制游戏的进行状况

menu:创建图形界面

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

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

board.py:生成棋盘

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

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

main.py

import sys
import pygame
import pygame_guifrom settings import *
from level import Level
from menu import Start_menuclass Game(object):def __init__(self):#窗口pygame.init()self.screen = pygame.display.set_mode(WINDOW_SIZE)pygame.display.set_caption('斗兽棋')self.clock = pygame.time.Clock()#Controllerself.level = Level()self.start_menu_ = Start_menu()#游戏状态self.game_over = True    @propertydef controller(self):""" 根据游戏状态选择Controller """if self.game_over:return self.start_menu_else:return self.leveldef 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) / 1000self.controller.run(delta_time)self.game_over = self.controller.game_overpygame.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 = widthself.height = heightself.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简易版斗兽棋小游戏源代码相关推荐

  1. 基于 Python 的横版 2D 动作类小游戏

    基于 Python 的横版 2D 动作类小游戏 游戏代码 游戏代码 游戏整体代码(基于 pygame 模块开发) // An highlighted block import pygame impor ...

  2. 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码

    前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...

  3. python简单版斗兽棋

    纯粹练手哈,简单的实现了人机对战, 吃光为胜.电脑随机走棋= = jungle.py: #_*_coding:utf-8_*_ ''' Created on 2012-3-27 简单版斗兽棋 @aut ...

  4. 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...

    斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...

  5. 基于React + Antd 实现的斗兽棋web应用

    基于React + Antd 实现的斗兽棋web应用 项目简介 功能规划 项目源码 棋盘渲染 mapitem gamemap(部分) map.json 棋子移动 && 规则特性 &am ...

  6. Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式

    基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...

  7. 【Unity连载】斗兽棋-棋类游戏开发演示(2)

    第四章 游戏操作与指令 如同养育一个婴儿,父母总会一步步引领孩子成长,从蹒跚学步到来去如风:我们对游戏功能的开发,也无疑应当从走出第一步棋开始.现在,我们已经构建出了棋盘.棋子等基本的游戏逻辑对象:那 ...

  8. PYTHON pygame库实战——实现双人弹球小游戏

    PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...

  9. JAVA实现简易版【斗地主】小游戏

    JAVA实现简易版[斗地主]小游戏 gitee项目源码链接:https://gitee.com/xzq25_com/playcardtest 效果展示:快来人机对战吧 一 二 三

最新文章

  1. ant基本标签 及import properties
  2. eclipse常用以及实用的快捷键
  3. K 个一组翻转链表Python解法
  4. Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
  5. Java虚拟机内存的代的划分
  6. Scrum与项目管理亲体验
  7. 线程池的使用以及其工具类的封装
  8. 默认情况下linux主机在机房托管期间被,托管机房作业未传之秘
  9. Unity3D:HTTP请求模块
  10. VS2003 搜索直接导致卡死问题
  11. donet编译原理(C#)
  12. PHP爬虫常用技术:v8js(执行js代码)
  13. 【MatLab fdatool】Butterworth 低通 带阻 滤波器 (MatLab C++)
  14. 对“淡泊以明志,宁静以致远”的理解
  15. MATLAB批量读取文件夹名,文件名,文件数据
  16. cv2颜色空间(2)——交互式的颜色检测
  17. UVA 1600 Patrol Robert 巡逻机器人 (启发搜索BFS)
  18. 软件项目外包的优缺点
  19. VS2015安装(vs2015安装包+虚拟光驱DVDFab)
  20. 自动化测试——unittest框架(单元测试)

热门文章

  1. MySql优化(六)MyCat中间件
  2. 分区魔法师,嘿嘿……
  3. [算法/java]多项式运算
  4. 线程的创建与线程间通信(C语言)
  5. 顺网科技服务器维修,顺网科技网维大师主副服务器带机不均原因及解决
  6. dmp文件的压缩比例
  7. 2021年A特种设备相关管理(锅炉压力容器压力管道)证考试及A特种设备相关管理(锅炉压力容器压力管道)复审模拟考试
  8. RS485 MODBUS转PROFINET网关案例_汇川变频器接入到1500 PROFINET
  9. 济南计算机大专学校有哪些科目,济南有哪些专科院校 附所有专科院校名单
  10. openldap 认证