100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于Python pygame简易版斗兽棋小游戏源代码

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

时间:2024-03-10 03:08:04

相关推荐

基于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 sysimport pygameimport pygame_guifrom settings import *from level import Levelfrom 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 pygamefrom 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简易版斗兽棋小游戏源代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。