2013-04-09 3 views
2

Я создал настольную игру:Python - нарисовали игровое поле, как окрасить «границу»?

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, я хочу, чтобы эти секции сетки были черными и образовали границу. Я забираю google относительно того, как это сделать, но я не нашел вариант заполнения, который кажется применимым. Может ли кто-нибудь указать мне в правильном направлении?

+0

Какие графические библиотеки вы используете? – Blckknght

+1

Довольно уверен, что это graphics.py: http://mcsp.wartburg.edu/zelle/python/graphics.py –

+1

Graphics.py, да, извините. Сейчас я полагаю, что могу просто наложить эти разделы сетки на черные прямоугольники, но я уверен, что есть более элегантное решение. – user2113818

ответ

0

Я полагаю, что могу просто наложить эти участки сетки на черные прямоугольники , но я уверен, что есть более элегантное решение.

Более элегантное решение может быть установлено окном черного фона, подавил прямоугольник белого цвета, который представляет фактическую область игры, а затем применить свои линии только к этому прямоугольнику:

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 х 8 борту без рисовать отдельные пограничные квадраты:

enter image description here