自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python代碼,能玩30多款童年游戲!這些有幾個是你玩過的

開發(fā) 后端
兒童節(jié)即將到來,雖然禿頭程序員沒有頭發(fā),但是童心還是一直都在的,今天就分享一些私藏的童年游戲,十幾行代碼就能進(jìn)入使用Python開發(fā)的小游戲快樂玩耍!

大游戲小游戲有千千萬萬,這些小游戲應(yīng)該只有90后才玩過和懂吧

兒童節(jié)即將到來,雖然禿頭程序員沒有頭發(fā),但是童心還是一直都在的,今天就分享一些私藏的童年游戲,十幾行代碼就能進(jìn)入使用Python開發(fā)的小游戲快樂玩耍!

使用工具:

  • Python3.8、pycharm2020

也可以不安裝pycharm2020也可以直接運行~但是安裝了些會好一點

1.五子棋

源碼:

 

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

2.超級瑪麗

這個源碼超級多多,文件很大很大~需要源碼的同學(xué)關(guān)注小編,并私信“01”領(lǐng)取

 

  1.  else
  2.         break 
  3. Interface(screen, cfg, mode='game_end'
  4.  
  5. me.display.update() 
  6.         clock.tick(cfg.FPS) 
  7.     if is_win_flag: 

 

3.炸彈人

源碼:

 

  1. '''游戲主程序''' 
  2. def main(cfg): 
  3.     # 初始化 
  4.     pygame.init() 
  5.     pygame.mixer.init() 
  6.     pygame.mixer.music.load(cfg.BGMPATH) 
  7.     pygame.mixer.music.play(-1, 0.0) 
  8.     screen = pygame.display.set_mode(cfg.SCREENSIZE) 
  9.     pygame.display.set_caption('Bomber Man —— 九歌'
  10.     # 開始界面 
  11.     Interface(screen, cfg, mode='game_start'
  12.     # 游戲主循環(huán) 
  13.     font = pygame.font.SysFont('Consolas', 15) 
  14.     for gamemap_path in cfg.GAMEMAPPATHS: 
  15.         # -地圖 
  16.         map_parser = mapParser(gamemap_path, bg_paths=cfg.BACKGROUNDPATHS, wall_paths=cfg.WALLPATHS, blocksize=cfg.BLOCKSIZE) 
  17.         # -水果 
  18.         fruit_sprite_group = pygame.sprite.Group() 
  19.         used_spaces = [] 
  20.         for i in range(5): 
  21.             coordinate = map_parser.randomGetSpace(used_spaces) 
  22.             used_spaces.append(coordinate) 
  23.             fruit_sprite_group.add(Fruit(random.choice(cfg.FRUITPATHS), coordinate=coordinate, blocksize=cfg.BLOCKSIZE)) 
  24.         # -我方Hero 
  25.         coordinate = map_parser.randomGetSpace(used_spaces) 
  26.         used_spaces.append(coordinate) 
  27.         ourhero = Hero(imagepaths=cfg.HEROZELDAPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='ZELDA'
  28.         # -電腦Hero 
  29.         aihero_sprite_group = pygame.sprite.Group() 
  30.         coordinate = map_parser.randomGetSpace(used_spaces) 
  31.         aihero_sprite_group.add(Hero(imagepaths=cfg.HEROBATMANPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='BATMAN')) 
  32.         used_spaces.append(coordinate) 
  33.         coordinate = map_parser.randomGetSpace(used_spaces) 
  34.         aihero_sprite_group.add(Hero(imagepaths=cfg.HERODKPATHS, coordinate=coordinate, blocksize=cfg.BLOCKSIZE, map_parser=map_parser, hero_name='DK')) 
  35.         used_spaces.append(coordinate) 
  36.         # -炸彈bomb 
  37.         bomb_sprite_group = pygame.sprite.Group() 
  38.         # -用于判斷游戲勝利或者失敗的flag 
  39.         is_win_flag = False 
  40.         # -主循環(huán) 
  41.         screen = pygame.display.set_mode(map_parser.screen_size) 
  42.         clock = pygame.time.Clock() 
  43.         while True
  44.             dt = clock.tick(cfg.FPS) 
  45.             for event in pygame.event.get(): 
  46.                 if event.type == pygame.QUIT: 
  47.                     pygame.quit() 
  48.                     sys.exit(-1) 
  49.                 # --↑↓←→鍵控制上下左右, 空格鍵丟炸彈 
  50.                 elif event.type == pygame.KEYDOWN: 
  51.                     if event.key == pygame.K_UP: 
  52.                         ourhero.move('up'
  53.                     elif event.key == pygame.K_DOWN: 
  54.                         ourhero.move('down'
  55.                     elif event.key == pygame.K_LEFT: 
  56.                         ourhero.move('left'
  57.                     elif event.key == pygame.K_RIGHT: 
  58.                         ourhero.move('right'
  59.                     elif event.key == pygame.K_SPACE: 
  60.                         if ourhero.bomb_cooling_count <= 0: 
  61.                             bomb_sprite_group.add(ourhero.generateBomb(imagepath=cfg.BOMBPATH, digitalcolor=cfg.YELLOW, explode_imagepath=cfg.FIREPATH)) 
  62.             screen.fill(cfg.WHITE) 
  63.             # --電腦Hero隨機(jī)行動 
  64.             for hero in aihero_sprite_group: 
  65.                 action, flag = hero.randomAction(dt) 
  66.                 if flag and action == 'dropbomb'
  67.                     bomb_sprite_group.add(hero.generateBomb(imagepath=cfg.BOMBPATH, digitalcolor=cfg.YELLOW, explode_imagepath=cfg.FIREPATH)) 
  68.             # --吃到水果加生命值(只要是Hero, 都能加) 
  69.             ourhero.eatFruit(fruit_sprite_group) 
  70.             for hero in aihero_sprite_group: 
  71.                 hero.eatFruit(fruit_sprite_group) 
  72.             # --游戲元素都綁定到屏幕上 
  73.             map_parser.draw(screen) 
  74.             for bomb in bomb_sprite_group: 
  75.                 if not bomb.is_being: 
  76.                     bomb_sprite_group.remove(bomb) 
  77.                 explode_area = bomb.draw(screen, dt, map_parser) 
  78.                 if explode_area: 
  79.                     # --爆炸火焰范圍內(nèi)的Hero生命值將持續(xù)下降 
  80.                     if ourhero.coordinate in explode_area: 
  81.                         ourhero.health_value -= bomb.harm_value 
  82.                     for hero in aihero_sprite_group: 
  83.                         if hero.coordinate in explode_area: 
  84.                             hero.health_value -= bomb.harm_value 
  85.             fruit_sprite_group.draw(screen) 
  86.             for hero in aihero_sprite_group: 
  87.                 hero.draw(screen, dt) 
  88.             ourhero.draw(screen, dt) 
  89.             # --左上角顯示生命值 
  90.             pos_x = showText(screen, font, text=ourhero.hero_name+'(our):'+str(ourhero.health_value), color=cfg.YELLOW, position=[5, 5]) 
  91.             for hero in aihero_sprite_group: 
  92.                 pos_x, pos_y = pos_x+15, 5 
  93.                 pos_x = showText(screen, font, text=hero.hero_name+'(ai):'+str(hero.health_value), color=cfg.YELLOW, position=[pos_x, pos_y]) 
  94.             # --我方玩家生命值小于等于0/電腦方玩家生命值均小于等于0則判斷游戲結(jié)束 
  95.             if ourhero.health_value <= 0: 
  96.                 is_win_flag = False 
  97.                 break 
  98.             for hero in aihero_sprite_group: 
  99.                 if hero.health_value <= 0: 
  100.                     aihero_sprite_group.remove(hero) 
  101.             if len(aihero_sprite_group) == 0: 
  102.                 is_win_flag = True 
  103.                 break 
  104.             pygame.display.update() 
  105.             clock.tick(cfg.FPS) 
  106.         if is_win_flag: 
  107.             Interface(screen, cfg, mode='game_switch'
  108.         else
  109.             break 
  110.     Interface(screen, cfg, mode='game_end'
  111.   
  112.   
  113. '''run''' 
  114. if __name__ == '__main__'
  115.     while True
  116.         main(cfg) 

4.推箱子

因為篇幅原因,下面的游戲都不貼源碼了,需要的同學(xué)關(guān)注小編,并私信“01”獲取下載

5.掃雷

上學(xué)時恨不得一直待在電腦房玩這個游戲,哈哈哈

第二種AI貪吃蛇

經(jīng)典游戲俄羅斯方塊

 

 

 

 

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2021-11-16 11:32:55

開發(fā)跳躍游戲

2019-09-25 09:05:52

Python 機(jī)器學(xué)習(xí)編程語言

2021-02-24 11:13:48

IDE工具代碼編輯器

2019-06-18 07:55:30

WindowsWindows 10操作系統(tǒng)

2017-07-25 09:27:39

2014-11-24 09:45:26

2019-08-27 15:12:12

Linux操作系統(tǒng)Windows

2019-07-25 10:45:05

GitHub技巧網(wǎng)站

2018-09-11 09:14:52

面試公司缺點

2022-03-08 12:00:22

軟件卡巴斯基RAR

2018-12-05 15:11:57

APP蘋果游戲

2022-05-29 08:54:44

Edge瀏覽器

2024-09-05 09:25:59

SpringUserDAO接口

2021-03-18 07:52:42

代碼性能技巧開發(fā)

2021-06-01 05:16:49

前端開發(fā)技術(shù)熱點

2015-07-13 09:04:10

互聯(lián)網(wǎng)設(shè)備設(shè)備

2020-02-25 23:36:04

代碼開發(fā)工具

2018-09-02 15:43:56

Python代碼編程語言

2016-10-14 14:01:28

2019-07-08 15:05:09

Python程序員編程語言
點贊
收藏

51CTO技術(shù)棧公眾號