1. 程式人生 > >利用pygame制作魔方的平面展示

利用pygame制作魔方的平面展示

from pda port clas com code hit .com 創建

為了更方便地驗證我們魔方變換代碼的準確性,特地利用pyggame設置一個簡單的平面展示,初步展示我們的魔方操作

利用pygame模塊的函數制作界面

screen = pygame.display.set_mode((400,480))  //創建一個寬度400、高度480的窗口

pygame.draw.rect(screen,(255,255,255),(x,y,width,length),3)  //用白色(255,255,255)填充矩形的外邊框,3代表邊框的寬度

pygame.draw.rect(screen,color,(x,y,34,34),0)  //當設置為0時代表矩形全填充,34=40-3*2,這樣做是因為做出來的界面好看一點,白邊更方便我們定位魔方的四個格子

全部代碼如下:

 1 import pygame
 2 from pygame.locals import *
 3 
 4 blue = 114,187,255
 5 white = 230,230,255
 6 yellow = 175,232,65
 7 red = 178,71,61
 8 orange = 255,129,66
 9 green = 0,203,40
10 
11 colors = [red,yellow,blue,white,green,orange]
12 
13 def initialize(screen,x,y):
14     pygame.draw.rect(screen,(255,255,255),(x,y,40,40),3)
15 pygame.draw.rect(screen,(255,255,255),(x+40,y,40,40),3) 16 pygame.draw.rect(screen,(255,255,255),(x,y+40,40,40),3) 17 pygame.draw.rect(screen,(255,255,255),(x+40,y+40,40,40),3) 18 19 def color_side(color,x,y,z,screen): 20 if(z==0 or z==1 or z==5): 21 pygame.draw.rect(screen,colors[color[0]],(x,y,34,34),0)
22 pygame.draw.rect(screen,colors[color[1]],(x+40,y,34,34),0) 23 pygame.draw.rect(screen,colors[color[3]],(x,y+40,34,34),0) 24 pygame.draw.rect(screen,colors[color[2]],(x+40,y+40,34,34),0) 25 elif(z==2): 26 pygame.draw.rect(screen,colors[color[1]],(x,y,34,34),0) 27 pygame.draw.rect(screen,colors[color[2]],(x+40,y,34,34),0) 28 pygame.draw.rect(screen,colors[color[0]],(x,y+40,34,34),0) 29 pygame.draw.rect(screen,colors[color[3]],(x+40,y+40,34,34),0) 30 elif(z==3): 31 pygame.draw.rect(screen,colors[color[2]],(x,y,34,34),0) 32 pygame.draw.rect(screen,colors[color[3]],(x+40,y,34,34),0) 33 pygame.draw.rect(screen,colors[color[1]],(x,y+40,34,34),0) 34 pygame.draw.rect(screen,colors[color[0]],(x+40,y+40,34,34),0) 35 elif(z==4): 36 pygame.draw.rect(screen,colors[color[3]],(x,y,34,34),0) 37 pygame.draw.rect(screen,colors[color[0]],(x+40,y,34,34),0) 38 pygame.draw.rect(screen,colors[color[2]],(x,y+40,34,34),0) 39 pygame.draw.rect(screen,colors[color[1]],(x+40,y+40,34,34),0) 40 41 def color_update(matrix,screen): 42 color_side(matrix[0],163,163,0,screen) 43 color_side(matrix[1],163,243,1,screen) 44 color_side(matrix[2],243,163,2,screen) 45 color_side(matrix[3],163,83,3,screen) 46 color_side(matrix[4],83,163,4,screen) 47 color_side(matrix[5],163,323,5,screen) 48 49 def paint(matrix): 50 screen = pygame.display.set_mode((400,480)) 51 screen.fill((155,155,155)) 52 initialize(screen,160,160) 53 initialize(screen,160,240) 54 initialize(screen,240,160) 55 initialize(screen,160,80) 56 initialize(screen,80,160) 57 initialize(screen,160,320) 58 color_update(matrix,screen) 59 pygame.display.update() 60 61 paint([[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4],[5,5,5,5]])


最終得到結果如下:

技術分享

利用pygame制作魔方的平面展示