基于Python pygame简易版斗兽棋小游戏源代码
基于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简易版斗兽棋小游戏源代码相关推荐
- 基于 Python 的横版 2D 动作类小游戏
基于 Python 的横版 2D 动作类小游戏 游戏代码 游戏代码 游戏整体代码(基于 pygame 模块开发) // An highlighted block import pygame impor ...
- 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码
前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...
- python简单版斗兽棋
纯粹练手哈,简单的实现了人机对战, 吃光为胜.电脑随机走棋= = jungle.py: #_*_coding:utf-8_*_ ''' Created on 2012-3-27 简单版斗兽棋 @aut ...
- 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...
斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...
- 基于React + Antd 实现的斗兽棋web应用
基于React + Antd 实现的斗兽棋web应用 项目简介 功能规划 项目源码 棋盘渲染 mapitem gamemap(部分) map.json 棋子移动 && 规则特性 &am ...
- Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式
基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...
- 【Unity连载】斗兽棋-棋类游戏开发演示(2)
第四章 游戏操作与指令 如同养育一个婴儿,父母总会一步步引领孩子成长,从蹒跚学步到来去如风:我们对游戏功能的开发,也无疑应当从走出第一步棋开始.现在,我们已经构建出了棋盘.棋子等基本的游戏逻辑对象:那 ...
- PYTHON pygame库实战——实现双人弹球小游戏
PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...
- JAVA实现简易版【斗地主】小游戏
JAVA实现简易版[斗地主]小游戏 gitee项目源码链接:https://gitee.com/xzq25_com/playcardtest 效果展示:快来人机对战吧 一 二 三
最新文章
- ant基本标签 及import properties
- eclipse常用以及实用的快捷键
- K 个一组翻转链表Python解法
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
- Java虚拟机内存的代的划分
- Scrum与项目管理亲体验
- 线程池的使用以及其工具类的封装
- 默认情况下linux主机在机房托管期间被,托管机房作业未传之秘
- Unity3D:HTTP请求模块
- VS2003 搜索直接导致卡死问题
- donet编译原理(C#)
- PHP爬虫常用技术:v8js(执行js代码)
- 【MatLab fdatool】Butterworth 低通 带阻 滤波器 (MatLab C++)
- 对“淡泊以明志,宁静以致远”的理解
- MATLAB批量读取文件夹名,文件名,文件数据
- cv2颜色空间(2)——交互式的颜色检测
- UVA 1600 Patrol Robert 巡逻机器人 (启发搜索BFS)
- 软件项目外包的优缺点
- VS2015安装(vs2015安装包+虚拟光驱DVDFab)
- 自动化测试——unittest框架(单元测试)
热门文章
- MySql优化(六)MyCat中间件
- 分区魔法师,嘿嘿……
- [算法/java]多项式运算
- 线程的创建与线程间通信(C语言)
- 顺网科技服务器维修,顺网科技网维大师主副服务器带机不均原因及解决
- dmp文件的压缩比例
- 2021年A特种设备相关管理(锅炉压力容器压力管道)证考试及A特种设备相关管理(锅炉压力容器压力管道)复审模拟考试
- RS485 MODBUS转PROFINET网关案例_汇川变频器接入到1500 PROFINET
- 济南计算机大专学校有哪些科目,济南有哪些专科院校 附所有专科院校名单
- openldap 认证