需要帮助在python中显示二维数组

时间:2014-05-18 07:12:44

标签: python arrays pygame

我需要为奥赛罗的游戏创建一个网格并开始使用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 :(得分:0)

您的作业似乎与python in practice (by Mark Summerfield)- section 1.3: Factory pattern method中的示例代码非常相似。它通过使用标准字体和标准库为棋盘游戏构建网格来解释工厂模式的使用。 M. Summerfield将比我更好地解释,但基本上它的目的是创建一个字符网格来替换电路板,同时使用工厂模式的最大抽象,甚至还有draughts的字体,这样你就可以用来制作一个不错的othello游戏!

希望这对你有用。干杯