用Python找到童年的樂趣,製作一款貪吃蛇小遊戲。新手教程!

說起貪吃蛇遊戲,我相信大部分90的貪吃蛇應該是用那種按鍵半屏的直板機玩的吧,那時候的流浪我清楚的記得5塊錢30m,但是一個月下來往往還能剩下蠻多!我記得當年我第一次接觸貪吃蛇遊戲的手機應該是一部諾基亞!那時候洛基亞就是手機品牌中的大明星了,貴到幾千上萬,便宜到幾百的都有!

用Python找到童年的樂趣,製作一款貪吃蛇小遊戲。新手教程!

好像應該就是這款手機,遊戲確實就是這款!它不能撞到尾巴和撞牆的!所以今天的內容就是教大家寫一款貪吃蛇小遊戲,懷舊一下子!

開發工具

python版本:3。6。8

編輯器:pycharm

相關模組

import copy import random import pygame

模組安裝

pip install -i https://pypi。doubanio。com/simple/ ——trusted-host pypi。doubanio。com pygame

實現效果

用Python找到童年的樂趣,製作一款貪吃蛇小遊戲。新手教程!

這個就是程式碼執行的效果了。以前就是這樣一個極為枯燥的遊戲都能很多人搶著玩,一人一條命,能玩十幾二十分鐘!本來很小的螢幕都被擠滿了!下面直接把程式碼分享給你們!

完整原始碼

完整程式碼 import copy import random # 遊戲模組 import pygame # 蛇的模型 snake_list = [[10, 10]] # 500x500 背景大小 # 食物的模型 隨機生成 x = random。randint(10, 490) y = random。randint(10, 490) food_point = [x, y] # 上下左右的方位 初始小蛇方向 move_up = False move_down = False move_left = False move_right = True # 畫布 # 初始化遊戲元件 pygame。init() # 設定畫布大小 screen = pygame。display。set_mode((500, 500)) # 設定名字 title = pygame。display。set_caption(‘貪吃蛇遊戲’) # 設定遊戲時鐘 clock = pygame。time。Clock() while True: # 電影 是一幀一幀 30fps clock。tick(20) # 遊戲迴圈 # 把背景填充為白色 screen。fill([255, 255, 255]) “”“貪吃蛇移動 獲取鍵盤事件”“” # 獲取電腦的時間 # 確定移動方位 for event in pygame。event。get(): # 獲取鍵盤事件 # print(event) if event。type == pygame。KEYDOWN: # 向下移動 if event。key == pygame。K_DOWN: move_up = False move_down = True move_left = False move_right = False if event。key == pygame。K_UP: move_up = True move_down = False move_left = False move_right = False if event。key == pygame。K_LEFT: move_up = False move_down = False move_left = True move_right = False if event。key == pygame。K_RIGHT: move_up = False move_down = False move_left = False move_right = True # 身子的移動 snake_len = len(snake_list) - 1 while snake_len > 0: snake_list[snake_len] = copy。deepcopy(snake_list[snake_len - 1]) snake_len -= 1 # 蛇頭的移動 if move_up: snake_list[snake_len][1] -= 10 if snake_list[snake_len][1] < 0: snake_list[snake_len][1] = 500 if move_down: snake_list[snake_len][1] += 10 if snake_list[snake_len][1] > 500: snake_list[snake_len][1] = 0 if move_left: snake_list[snake_len][0] -= 10 if snake_list[snake_len][0] < 0: snake_list[snake_len][0] = 500 if move_right: snake_list[snake_len][0] += 10 if snake_list[snake_len][0] > 500: snake_list[snake_len][0] = 0 # 繪製食物圓點 food_rect = pygame。draw。circle(screen, [255, 0, 0], food_point, 15) # 迴圈 snake_rect = [] for snake_pos in snake_list: snake_rect。append(pygame。draw。circle(screen, [255, 0, 0], snake_pos, 5)) # 如果食物與蛇傳送了碰撞 碰撞檢測方法 if food_rect。collidepoint(snake_pos): snake_list。append(food_point) # 重新生成食物 food_point = [random。randint(10, 490), random。randint(10, 490)] break # 貪吃蛇吃到了自己 應該結束遊戲 # 取到蛇頭 snake_head_rect = snake_rect[0] count = len(snake_rect) while count > 1: # 蛇頭與身子的任何一個點都有可能發生碰撞 if snake_head_rect。colliderect(snake_rect[count - 1]): print(‘貪吃蛇吃到了自己,結束遊戲’) pygame。quit() count -= 1 # 把繪製的東西顯示出來 pygame。display。update()

為了感謝讀者們,我想把我最近收藏的一些程式設計乾貨分享給大家,回饋每一個讀者,希望能幫到你們。