欢迎光临
我们一直在努力

基于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简易版斗兽棋小游戏源代码

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《基于Python pygame简易版斗兽棋小游戏源代码》
文章链接:https://www.456zj.com/36867.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址