2

我创建了一个游戏板:

win = GraphWin ("Gameboard",500,500)
win.setCoords(0.0,0.0,10.0,10.0)
drawBoard(win)
for i in range(10):
    Line(Point(0,i),Point(10,i)).draw(win)
for x in range(10):
    Line(Point(x,0),Point(x,10)).draw(win)

我有一个 10x10 的网格,其可播放范围将从 (2,2) 到 (9,9)。对于 x = 1、x = 10、y = 1 或 y = 10 的任何网格标记,我希望网格的这些部分为黑色并形成边框。我一直在向谷歌征集如何做到这一点,但我还没有找到一个似乎适用的填充选项。有人能指出我正确的方向吗?

4

1 回答 1

1

我想我可以用黑色矩形覆盖网格的这些部分,但我确信有一个更优雅的解决方案。

一个更优雅的解决方案可能是将窗口背景设置为黑色,放下一个代表实际游戏区域的白色矩形,然后仅将线条应用于该矩形:

from graphics import *

win = GraphWin("Gameboard", 500, 500)
win.setCoords(0, 0, 10, 10)

def drawBoard(window):
    window.setBackground("black")
    rectangle = Rectangle(Point(1, 1), Point(9, 9))
    rectangle.setFill("white")
    rectangle.draw(window)

    for i in range(1, 10):
        Line(Point(1, i), Point(9, i)).draw(window)
    for x in range(1, 10):
        Line(Point(x, 1), Point(x, 9)).draw(window)

drawBoard(win)

win.getMouse()
win.close()

这为您提供了一个 8 x 8 板,而无需绘制单独的边框方块:

在此处输入图像描述

于 2017-01-09T21:57:00.863 回答