用python寫乙個俄羅斯方塊小遊戲

2022-06-25 09:54:11 字數 2655 閱讀 9488

感覺還是蠻好玩吧!

接下來,我就分享一下這個遊戲的原始碼過程啊!

先用python建立乙個py檔案

定義這次程式所需要的類

import sys

import time

import pygame

from pygame.localsimport *

import blocks

然後寫出它所需要的模組

size =30 # 每個小方格大小

block_height =25 # 遊戲區高度

block_width =10 # 遊戲區寬度

border_width =4 # 遊戲區邊框寬度

border_color = (40, 40, 200)# 遊戲區邊框顏色

screen_width = size * (block_width +5)# 遊戲螢幕的寬

screen_height = size * block_height# 遊戲螢幕的高

bg_color = (40, 40, 60)# 背景色

block_color = (20, 128, 200)#

black = (0, 0, 0)

red = (200, 30, 30)# game over 的字型顏色

# 畫背景

```python

```python

def _draw_background(screen):

# 填充背景色

screen.fill(bg_color)

# 畫遊戲區域分隔線

pygame.draw.line(screen, border_color,

(size * block_width + border_width // 2, 0),

(size * block_width + border_width // 2, screen_height), border_width)

# 畫網格線

```python

def _draw_gridlines(screen):

# 畫網格線 豎線

for x in range(block_width):

pygame.draw.line(screen, black, (x * size, 0), (x * size, screen_height), 1)

# 畫網格線 橫線

for y in range(block_height):

pygame.draw.line(screen, black, (0, y * size), (block_width * size, y * size), 1)

def _draw_game_area(screen, game_area):

if game_area:

for i, row in enumerate(game_area):

for j, cell in enumerate(row):

if cell != '.':

pygame.draw.rect(screen, block_color, (j * size, i * size, size, size), 0)

def _draw_block(screen, block, offset_x, offset_y, pos_x, pos_y):

if block:

for i in range(block.start_pos.y, block.end_pos.y + 1):

for j in range(block.start_pos.x, block.end_pos.x + 1):

if block.template[i][j] != '.':

pygame.draw.rect(screen, block_color,

(offset_x + (pos_x + j) * size, offset_y + (pos_y + i) * size, size, size), 0)

def _draw_info(screen, font, pos_x, font_height, score):

print_text(screen, font, pos_x, 10, f'得分: ')

print_text(screen, font, pos_x, 10 + font_height + 6, f'')

print_text(screen, font, pos_x, 20 + (font_height + 6) * 2, f'速度: ')

print_text(screen, font, pos_x, 20 + (font_height + 6) * 3, f'')

print_text(screen, font, pos_x, 30 + (font_height + 6) * 4, f'下乙個:')

if __name__ == '__main__':

main()

效果圖

剛寫的乙個俄羅斯方塊程式

這是我做的 define win32 lean and mean include include include define id timer 1 define white 0 define black 1 int level 1 int score 0 int global 18 16 int ...

用C 實現俄羅斯方塊

include using namespace std 構造完成標誌 bool sign false 建立數獨矩陣 int num 9 9 函式宣告 void input void output bool check int n,int key int dfs int n 主函式 int main ...

乙個簡單的俄羅斯方塊實現

最近在看 net遊戲程式設計入門經典 c 篇 第一章介紹了如何製作俄羅斯方塊,自己試了試按照書上的步驟,可算是完成了。於是寫下這篇文章留作紀念。1.類的設計 在充分分析遊戲的特點後,遊戲大概可以分為3個類 square小正方形,block由4個小正方形組合成的乙個圖形,gamefield遊戲的驅動引...