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

-1 投票
1 回答
561 浏览
提问于 2025-04-18 06:54

我需要为一款黑白棋游戏创建一个网格,开始使用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的解释会比我更清楚,但简单来说,它的目的是创建一个字符网格来替代棋盘,同时使用工厂模式来实现最大的抽象。甚至还有一些字体,比如跳棋的字体,你可以用来制作一个漂亮的黑白棋游戏!

希望这对你有帮助。祝好!

撰写回答