0

Pythonでgraphics.pyを使用してゲームを設計しています。私は最初にすべてをセットアップしましたが、ゲームはボックスをクリックしてボックスの色を反転させることで構成されていました。例: クリックされたボックスの色が白の場合、黒に変わります。私のコードは白いボックスを黒に変えるために機能しますが、黒いボックスを白に変換しません。while ループの if ステートメントが間違っていることはわかっています。適切なifステートメントを作成できるように、graphics.pyで長方形の色の値を取得する方法を知りたいです。

# _______________________IMPORTS_________________________
from graphics import *
import random
#________________________________________________________

win = None
m_board = []

# Description:
#  Wait for the user to enter a valid move via the mouse. If the player selects a position
#  outside the valid range or selects an occupied board space, the player is asked again.
#  The function returns the move only when it's valid.
# Return value:
#  An integer in the range 0 to 99 representing the move

def make_move():

    pos = win.getMouse()
    x_axis = pos.x // 50
    y_axis = pos.y // 50
    move = y_axis * 10 + x_axis


    return move


# Description:
#   Creating the initial board with random black and white boxes
# Return Value:
#   None

def draw_board():
    global win, m_board

    color = ["white", "black"]        #Creating list for the random black/white
    win = GraphWin("LOGICX", 500, 600)

    for y in range(0, 500, 50):
        for x in range(0, 500, 50):

            board_box = Rectangle(Point(x, y), Point(x + 50, y + 50))                    
            #Setting the boxes with random black/white
            board_box.setFill(color[random.randint(0, 1)])            
            #Adding each box to the empty list
            m_board.append(board_box)            
            #Setting outline color to differentiate individual boxes
            board_box.setOutline("grey")
            board_box.draw(win)



    game_running = True
    while game_running:

        move = make_move()
        if m_board[move] == "black":
            m_board[move].setFill("white")

        else:
            m_board[move].setFill("black")
4

1 に答える 1