当前位置:   article > 正文

用Python实现童年的21款小游戏,有你玩过的吗?(源码分享)_python小游戏源代码

python小游戏源代码

Python为什么能这么火热?Python相对于其他语言来说比较简单,即使是零基础的普通人也能很快的掌握,在其他方面比如,处于灰色界的爬虫,要VIP的视频,小说,歌,没有爬虫解决不了的;数据挖掘及分析,淘宝就是例子,想开个淘宝店,需要获取相关商品信息,这时数据分析就能解决等等;游戏开发、自动化测试、人工智能,黑客入门语言等等等。

接着介绍下去今天就停不了啦,只要对于Python有过了解的,用过的,应该都知道他的厉害之处, 进入主题,游戏,今天直接上干货,童年你玩过的21款游戏源码分享。

1、五子棋

展示: 在这里插入图片描述

游戏源码:


'''游戏开始界面'''
class gameStartUI(QWidget):
    def __init__(self, parent=None, **kwargs):
        super(gameStartUI, self).__init__(parent)
        self.setFixedSize(760, 650)
        self.setWindowTitle('五子棋 —— 九歌')
        self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))
        # 背景图片
        palette = QPalette()
        palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start'))))
        self.setPalette(palette)
        # 按钮
        # --人机对战
        self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self)
        self.ai_button.move(250, 200)
        self.ai_button.show()
        self.ai_button.click_signal.connect(self.playWithAI)
        # --联机对战
        self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self)
        self.online_button.move(250, 350)
        self.online_button.show()
        self.online_button.click_signal.connect(self.playOnline)
    '''人机对战'''
    def playWithAI(self):
        self.close()
        self.gaming_ui = playWithAIUI(cfg)
        self.gaming_ui.exit_signal.connect(lambda: sys.exit())
        self.gaming_ui.back_signal.connect(self.show)
        self.gaming_ui.show()
    '''联机对战'''
    def playOnline(self):
        self.close()
        self.gaming_ui = playOnlineUI(cfg, self)
        self.gaming_ui.show()
 
 
'''run'''
if __name__ == '__main__':
    app = QApplication(sys.argv)
    handle = gameStartUI()
    font = QFont()
    font.setPointSize(12)
    handle.setFont(font)
    handle.show()
    sys.exit(app.exec_())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

2、保卫森林大作战

展示: 在这里插入图片描述

游戏源码:


import cfg
import pygame
from modules import *
  
  
'''主函数'''
def main():
 pygame.init()
 pygame.mixer.init()
 pygame.mixer.music.load(cfg.AUDIOPATHS['bgm'])
 pygame.mixer.music.play(-1, 0.0)
 pygame.mixer.music.set_volume(0.25)
 screen = pygame.display.set_mode(cfg.SCREENSIZE)
 pygame.display.set_caption("塔防游戏 —— 九歌")
 **调用游戏开始界面**
 start_interface = StartInterface(cfg)
 is_play = start_interface.update(screen)
 if not is_play:
  return
 **调用游戏界面**
 while True:
  choice_interface = ChoiceInterface(cfg)
  map_choice, difficulty_choice = choice_interface.update(screen)
  game_interface = GamingInterface(cfg)
  game_interface.start(screen, map_path=cfg.MAPPATHS[str(map_choice)], difficulty_path=cfg.DIFFICULTYPATHS[str(difficulty_choice)])
  end_interface = EndInterface(cfg)
  end_interface.update(screen)
  
'''run'''
if __name__ == '__main__':
 main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

3、超级大迷宫

展示:在这里插入图片描述

游戏源码:


import cfg
import sys
import pygame
from modules import *
  
  
'''主函数'''
def main(cfg):


  **初始化**
 pygame.init()
 pygame.mixer.init()
 pygame.font.init()
 pygame.mixer.music.load(cfg.BGMPATH)
 pygame.mixer.music.play(-1, 0.0)
 screen = pygame.display.set_mode(cfg.SCREENSIZE)
 pygame.display.set_caption('Maze —— 九歌')
 font = pygame.font.SysFont('Consolas', 15)

  开始界面
 Interface(screen, cfg, 'game_start')

  记录关卡数
 num_levels = 0

  记录最少用了多少步通关
 best_scores = 'None'

 关卡循环切换
 while True:
  num_levels += 1
  clock = pygame.time.Clock()
  screen = pygame.display.set_mode(cfg.SCREENSIZE)

   --随机生成关卡地图
  maze_now = RandomMaze(cfg.MAZESIZE, cfg.BLOCKSIZE, cfg.BORDERSIZE)

   --生成hero
  hero_now = Hero(cfg.HEROPICPATH, [0, 0], cfg.BLOCKSIZE, cfg.BORDERSIZE)
 
   --统计步数
  num_steps = 0

  --关卡内主循环
  while True:
   dt = clock.tick(cfg.FPS)
   screen.fill((255, 255, 255))
   is_move = False


   # ----↑↓←→控制hero
  
 for event in pygame.event.get():
    if event.type == pygame.QUIT:
     pygame.quit()
     sys.exit(-1)
    elif event.type == pygame.KEYDOWN:
     if event.key == pygame.K_UP:
      is_move = hero_now.move('up', maze_now)
     elif event.key == pygame.K_DOWN:
      is_move = hero_now.move('down', maze_now)
     elif event.key == pygame.K_LEFT:
      is_move = hero_now.move('left', maze_now)
     elif event.key == pygame.K_RIGHT:
      is_move = hero_now.move('right', maze_now)
   num_steps += int(is_move)
   hero_now.draw(screen)
   maze_now.draw(screen)
   
    ----显示一些信息
   showText(screen, font, 'LEVELDONE: %d' % num_levels, (255, 0, 0), (10, 10))
   showText(screen, font, 'BESTSCORE: %s' % best_scores, (255, 0, 0), (210, 10))
   showText(screen, font, 'USEDSTEPS: %s' % num_steps, (255, 0, 0), (410, 10))
   showText(screen, font, 'S: your starting point D: your destination', (255, 0, 0), (10, 600))
   
    ----判断游戏是否胜利
   if (hero_now.coordinate[0] == cfg.MAZESIZE[1] - 1) and (hero_now.coordinate[1] == cfg.MAZESIZE[0] - 1):
    break
   pygame.display.update()
   
  --更新最优成绩
  if best_scores == 'None':
   best_scores = num_steps
  else:
   if best_scores > num_steps:
    best_scores = num_steps
    
   --关卡切换
  Interface(screen, cfg, mode='game_switch')
  
'''run'''
if __name__ == '__main__':
 main(cfg)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95

在这里插入图片描述

4、滑雪游戏在这里插入图片描述

5、接金币游戏

在这里插入图片描述

6、塔防小游戏

在这里插入图片描述

7、坦克大战

在这里插入图片描述

8、连连看

在这里插入图片描述

9、扫雷

在这里插入图片描述

10、超级玛丽

在这里插入图片描述

11、炸弹人

在这里插入图片描述 太多了,偷懒就不一一展示,这些游戏陪伴了我们每个不同成长阶段的快乐,需要资源的可以关注我点击领取资源!

在这里插入图片描述
Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】

推荐阅读
相关标签