需要帮助在Python中显示二维数组
我需要为一款黑白棋游戏创建一个网格,开始使用pygame这个库,但发现我在用Python编程时无法使用pygame。
我需要帮助,想知道如何把我的代码转换一下,这样我就可以在不使用pygame的情况下,仅用Python来显示相同的网格。
抱歉如果这个问题让人困惑,因为我刚开始学习编程,网上搜索也没找到合适的答案。
代码:
import pygame
pygame.init()
def initialiseBoard(n):
#Set max n value
if(n<20):
#Define colours
BLACK = (0, 0, 0,)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = ( 255, 0, 0)
#Create a 2 dimensional array
grid = []
for row in range(n):
grid.append([])
for column in range(n):
grid[row].append(0)
#Set width and heigh for each square and margin between them
width = 20
height = 20
margin = 5
size = [510, 510]
screen = pygame.display.set_mode(size)
#Create the starting positions
grid[n//2-1][n//2]=1
grid[(n//2)][(n//2)]=2
grid[n//2][n//2-1]=1
grid[(n//2-1)][(n//2)-1]=2
#Draw the grid
screen.fill(RED)
for row in range(n):
for column in range(n):
color = GREEN
if grid[row][column] == 1:
color = WHITE
if grid[row][column] == 2:
color = BLACK
pygame.draw.rect(screen,
color,
[(margin+width)*column+margin,
(margin+height)*row+margin,
width,
height])
pygame.display.flip()
else:
print("The grid must be less than 20x20, please reenter a smaller value")
1 个回答
0
你的作业看起来和你可以在《实践中的Python》(作者:Mark Summerfield)第1.3节的示例代码非常相似。这一节讲解了工厂模式的用法,通过使用标准字体和标准库来构建棋盘游戏的网格。M. Summerfield的解释会比我更清楚,但简单来说,它的目的是创建一个字符网格来替代棋盘,同时使用工厂模式来实现最大的抽象。甚至还有一些字体,比如跳棋的字体,你可以用来制作一个漂亮的黑白棋游戏!
希望这对你有帮助。祝好!