2016-12-09 2 views
0
print("Finished Loading!") 
print("x's turn") 
xturn = True 


if xturn == True: 
    usl.onclick(x1) 
    usc.onclick(yo) 
    usr.onclick(x3) 
    csr.onclick(x4) 
    csl.onclick(x5) 
    cs.onclick(x6) 
    dsl.onclick(x7) 
    dsc.onclick(x8) 
    dsr.onclick(x9) 
else: 
    print("o's Turn") 
    usl.onclick(o1) 

私はクラスのためにTic-tac-toeゲームを作成していますが、演奏の仕組みは終わっています(誰かがクリックするとx/oになります)順番に苦労している。上の抜粋は、私が主にモチーフにする必要があるものです。私は誰かがあなたのキャラクターのグラフィックを変化させるためにどのようにイベントを使うことができるのか、誰かが交替するための良いシステムを知っているかどうかを知っていたのかどうか疑問に思っていました。タートルベースのゲームで交互にする方法

答えて

0

私はこの問題を、作業用のタック・タック・トゥ・インターフェイスを実装するためにできるだけ小さなタートル・コードを書くことに挑戦しました。以下のコードは、Xの& Oのターンを交互に繰り返し、正方形が再利用されないようにします。また、それはとても他のイベントをクリックイベントを使用し、メインループに制御をオーバーになります

from turtle import Turtle, Screen 

UNIT_SIZE = 80 
HALF_GRID_SIZE = 3 * UNIT_SIZE/2 
FONT_SIZE = 48 # adjust to taste 

x_turn = True 

def choosen(turtle): 
    global x_turn 

    turtle.onclick(None) # taken so no longer responds 

    x, y = turtle.position() 
    magic_marker.goto(x, y - FONT_SIZE/2) 
    magic_marker.write("X" if x_turn else "O", font=("Arial", FONT_SIZE, "bold"), align="center") 

    x_turn = not x_turn 

magic_marker = Turtle(visible=False) 
magic_marker.speed("fastest") 
magic_marker.penup() 

for row in range(-UNIT_SIZE, UNIT_SIZE + 1, UNIT_SIZE): 
    if row >= 0: 
     magic_marker.goto(-HALF_GRID_SIZE, row - UNIT_SIZE/2) 
     magic_marker.pendown() 
     magic_marker.setx(HALF_GRID_SIZE) 
     magic_marker.penup() 

    for column in range(-UNIT_SIZE, UNIT_SIZE + 1, UNIT_SIZE): 

     if column >= 0: 
      magic_marker.goto(column - UNIT_SIZE/2, -HALF_GRID_SIZE) 
      magic_marker.pendown() 
      magic_marker.sety(HALF_GRID_SIZE) 
      magic_marker.penup() 

     turtle = Turtle(shape="square", visible=False) 
     turtle.shapesize(0.8 * (UNIT_SIZE/20)) # 0.8 = a safety margin 
     turtle.color("white") 
     turtle.penup() 
     turtle.goto(column, row) 
     turtle.showturtle() # still white on white but not clickable if not visible 

     turtle.onclick(lambda x, y, t = turtle: choosen(t)) 

screen = Screen() 
screen.mainloop() 

ことができます。上にそれはゲームを獲得しようとしないでも、それ自体は、ゲームをプレイする、それがあなたの知性を構築するだけの最小限のインタフェースですアクティブである。

enter image description here

関連する問題