適合小白練習的幾個Python小遊戲專案-含開發思路

Python小码农發表於2024-07-05

1. 猜單詞遊戲

import random

words = ["apple", "banana", "cherry", "date", "elderberry"]

def guess_word():
    word = random.choice(words)
    guessed_letters = []
    attempts = 6

    while attempts > 0:
        display_word = ""
        for letter in word:
            if letter in guessed_letters:
                display_word += letter
            else:
                display_word += "_"
        print(display_word)

        guess = input("請輸入一個字母:")
        if guess in word and guess not in guessed_letters:
            guessed_letters.append(guess)
            if all(letter in guessed_letters for letter in word):
                print("恭喜你猜對了單詞!")
                break
        else:
            attempts -= 1
            print(f"猜錯了,你還有 {attempts} 次機會。")

    if attempts == 0:
        print(f"遊戲結束,單詞是 {word}")

if __name__ == "__main__":
    guess_word()

  

猜單詞遊戲開發思路:

    1. 首先定義了一個包含可能被猜測單詞的列表 words
    2. guess_word 函式中,隨機選擇一個單詞作為要猜測的目標。
    3. 建立一個空列表 guessed_letters 用於儲存玩家已經猜對的字母。
    4. 設定嘗試次數 attempts
    5. 在主迴圈中,透過遍歷目標單詞,根據已猜對的字母顯示單詞的部分內容。
    6. 玩家輸入猜測的字母,如果猜對且未被猜過,將其加入 guessed_letters ,並檢查是否已猜對整個單詞。如果猜錯,減少嘗試次數並給出提示。
    7. 根據最終結果輸出相應的資訊。

2. 數字炸彈遊戲

import random

def number_bomb():
    num = random.randint(1, 100)
    guess = None
    attempts = 10

    while guess!= num and attempts > 0:
        guess = int(input("請輸入你猜測的數字(1 - 100): "))
        attempts -= 1

        if guess < num:
            print("猜小了,還剩", attempts, "次機會。")
        elif guess > num:
            print("猜大了,還剩", attempts, "次機會。")

    if guess == num:
        print("恭喜你猜對了!")
    else:
        print("遊戲結束,數字是", num)

if __name__ == "__main__":
    number_bomb()

  

數字炸彈遊戲開發思路:
    1. 生成一個 1 到 100 之間的隨機數字作為炸彈數字 num
    2. 設定初始猜測次數 attempts
    3. 在迴圈中,讓玩家輸入猜測的數字。
    4. 根據玩家猜測與炸彈數字的大小關係給出提示,並相應地調整嘗試次數。
    5. 根據最終是否猜對輸出結果。

3. 貪吃蛇遊戲

import pygame
import random

# 基礎設定
# 螢幕高度
SCREEN_HEIGHT = 480
# 螢幕寬度
SCREEN_WIDTH = 600
# 小方格大小
GRID_SIZE = 20

# 顏色定義
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)

# 初始化 pygame
pygame.init()

# 建立螢幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("貪吃蛇遊戲")

# 遊戲時鐘
clock = pygame.time.Clock()

# 初始蛇的位置和長度
snake_pos = [200, 100]
snake_body = [[snake_pos[0], snake_pos[1]]]

# 食物的初始位置
food_pos = [random.randint(0, SCREEN_WIDTH // GRID_SIZE - 1) * GRID_SIZE,
            random.randint(0, SCREEN_HEIGHT // GRID_SIZE - 1) * GRID_SIZE]

# 遊戲結束標誌
game_over = False

# 遊戲方向,初始向右
direction = 'RIGHT'
change_to = direction

def game_over_screen():
    font = pygame.font.SysFont(None, 48)
    text = font.render("遊戲結束,按任意鍵重新開始", True, WHITE)
    screen.blit(text, [SCREEN_WIDTH // 2 - 200, SCREEN_HEIGHT // 2 - 50])
    pygame.display.flip()

def update_snake():
    global food_pos, game_over

    if not game_over:
        if direction == 'RIGHT':
            snake_pos[0] += GRID_SIZE
        elif direction == 'LEFT':
            snake_pos[0] -= GRID_SIZE
        elif direction == 'UP':
            snake_pos[1] -= GRID_SIZE
        elif direction == 'DOWN':
            snake_pos[1] += GRID_SIZE

        # 檢查是否吃到食物
        if [snake_pos[0], snake_pos[1]] == food_pos:
            food_pos = [random.randint(0, SCREEN_WIDTH // GRID_SIZE - 1) * GRID_SIZE,
                        random.randint(0, SCREEN_HEIGHT // GRID_SIZE - 1) * GRID_SIZE]
        else:
            # 去除蛇尾
            del snake_body[0]

        # 檢查是否撞到自己或邊界
        if [snake_pos[0], snake_pos[1]] in snake_body[1:]:
            game_over = True
        elif snake_pos[0] < 0 or snake_pos[0] >= SCREEN_WIDTH or snake_pos[1] < 0 or snake_pos[1] >= SCREEN_HEIGHT:
            game_over = True

        snake_body.append(list(snake_pos))

def draw_snake_and_food():
    for pos in snake_body:
        pygame.draw.rect(screen, GREEN, [pos[0], pos[1], GRID_SIZE, GRID_SIZE])

    pygame.draw.rect(screen, WHITE, [food_pos[0], food_pos[1], GRID_SIZE, GRID_SIZE])

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and direction!= 'DOWN':
                change_to = 'UP'
            elif event.key == pygame.K_DOWN and direction!= 'UP':
                change_to = 'DOWN'
            elif event.key == pygame.K_LEFT and direction!= 'RIGHT':
                change_to = 'LEFT'
            elif event.key == pygame.K_RIGHT and direction!= 'LEFT':
                change_to = 'RIGHT'

    if change_to == 'UP' and direction!= 'DOWN':
        direction = 'UP'
    elif change_to == 'DOWN' and direction!= 'UP':
        direction = 'DOWN'
    elif change_to == 'LEFT' and direction!= 'RIGHT':
        direction = 'LEFT'
    elif change_to == 'RIGHT' and direction!= 'LEFT':
        direction = 'RIGHT'

    update_snake()

    screen.fill(BLACK)
    draw_snake_and_food()

    if game_over:
        game_over_screen()
    else:
        pygame.display.flip()

    clock.tick(10)

  

貪吃蛇遊戲開發思路:
    1. 進行基礎設定,包括螢幕大小、小方格大小、顏色等,並初始化 pygame
    2. 定義初始蛇的位置和身體、食物的位置,以及遊戲結束標誌和初始方向。
    3. update_snake 函式負責更新蛇的位置和狀態,包括判斷是否吃到食物、是否撞到自身或邊界。
    4. draw_snake_and_food 函式用於在螢幕上繪製蛇和食物。
    5. 在主迴圈中,處理事件,根據玩家按鍵改變方向。
    6. 呼叫更新函式和繪製函式,根據遊戲狀態進行相應的顯示。如果遊戲結束,顯示結束提示。

PS:網站將不斷更新

——————————————————————————————————————————————————————————————————————

關於Python技術儲備

學好 Python 不論是就業還是做副業賺錢都不錯,但要學會 Python 還是要有一個學習規劃。最後大家分享一份全套的 Python 學習資料,給那些想學習 Python 的小夥伴們一點幫助!

儲存圖片微信掃描下方 部落格園官方認證 二維碼免費領取保證100%免費

一、Python所有方向的學習路線

Python所有方向的技術點做的整理,形成各個領域的知識點彙總,它的用處就在於,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。

二、Python基礎學習影片

② 路線對應學習影片

還有很多適合0基礎入門的學習影片,有了這些影片,輕輕鬆鬆上手Python~在這裡插入圖片描述

3、Python實戰案例

光學理論是沒用的,要學會跟著一起敲程式碼,動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。100+實戰案例原始碼等你來拿!

4、面試資料

我們學習Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、位元組等一線網際網路大廠最新的面試資料,並且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

5、Python兼職渠道

而且學會Python以後,還可以在各大兼職平臺接單賺錢,各種兼職渠道+兼職注意事項+如何和客戶溝通,我都整理成文件了。

這份完整版的Python全套學習資料已經上傳部落格園,朋友們如果需要可以儲存圖片微信掃描下方部落格園官方認證二維碼免費領取保證100%免費

相關文章