2016-11-22 17 views
0

2ヶ月前にPythonでプロゲームを開始しましたが、1週間前に問題が発生しました。 私は草案のゲームのボードを描きました。そして、私はそれらが望むように作品を動かしたいと思います。ドラフトゲームで奇妙な構文エラーが発生しました

direction_rouge()(ルージュはフランス語で赤)、direction_bleu()(ブルーは青を意味します)の2つの関数があります。

これらはピースの座標を正しく変更するため、次のIfループからそれらを使用しようとしました。 ループは、プレイヤーがプレイできるターン数を決定します。 各ループはターンであるため、direction_rouge()とdirection_bleu()は1回呼び出されます(別のセグメントでピースが食べられる場合は2つ)。

各ターンで関数呼び出しで発生する構文エラーが見つかりません。ここで

はプログラムの開発で、楽しい^^を持っている:

def direction_rouge() : 
     """1 up left on the board 
     2 up right 
     3 down left 
     4 down right""" 

     t.up() 
     t.color(255,255,255) 
     t.goto(Xrouge[r-1],Yrouge[r-1]) 
     t.down() 
     t.goto(Xrouge[r-1],Yrouge[r-1]) 
     t.up() 
     t.color(255,0,0) 

     if n == 1 : 
       t.goto(Xrouge[r-1]-50,Yrouge[r-1]+50) 
       t.down() 
       t.goto(Xrouge[r-1]-50,Yrouge[r-1]+50) 
       Xrouge[r-1] = Xrouge[r-1]-50 
       Yrouge[r-1] = Yrouge[r-1]+50 
     if n == 2 : 
       t.goto(Xrouge[r-1]+50,Yrouge[r-1]+50) 
       t.down() 
       t.goto(Xrouge[r-1]+50,Yrouge[r-1]+50) 
       Xrouge[r-1] = Xrouge[r-1]+50 
       Yrouge[r-1] = Yrouge[r-1]+50 
     if n == 3 : 
       t.goto(Xrouge[r-1]-50,Yrouge[r-1]-50) 
       t.down() 
       t.goto(Xrouge[r-1]-50,Yrouge[r-1]-50) 
       Xrouge[r-1] = Xrouge[r-1]-50 
       Yrouge[r-1] = Yrouge[r-1]-50 
     if n == 4 : 
       t.goto(Xrouge[r-1]+50,Yrouge[r-1]-50) 
       t.down() 
       t.goto(Xrouge[r-1]+50,Yrouge[r-1]-50) 
       Xrouge[r-1] = Xrouge[r-1]+50 
       Yrouge[r-1] = Yrouge[r-1]-50 
     t.color(255,255,255) 
     t.write(r,False,align = "left",font=("Arial",10,"normal")) 



def direction_bleu() : 
     """same as direction_rouge""" 

     t.up() 
     t.color(255,255,255) 
     t.goto(Xbleu[b-1],Ybleu[b-1]) 
     t.down() 
     t.goto(Xbleu[b-1],Ybleu[b-1]) 
     t.up() 
     t.color(0,0,255) 

     if n == 1 : 
       t.goto(Xbleu[b-1]-50,Ybleu[b-1]+50) 
       t.down() 
       t.goto(Xbleu[b-1]-50,Ybleu[b-1]+50) 
       Xbleu[b-1] = Xbleu[b-1]-50 
       Ybleu[b-1] = Ybleu[b-1]+50 
     if n == 2 : 
       t.goto(Xbleu[b-1]+50,Ybleu[b-1]+50) 
       t.down() 
       t.goto(Xbleu[b-1]+50,Ybleu[b-1]+50) 
       Xbleu[b-1] = Xbleu[b-1]+50 
       Ybleu[b-1] = Ybleu[b-1]+50 
     if n == 3 : 
       t.goto(Xbleu[b-1]-50,Ybleu[b-1]-50) 
       t.down() 
       t.goto(Xbleu[b-1]-50,Ybleu[b-1]-50) 
       Xbleu[b-1] = Xbleu[b-1]-50 
       Ybleu[b-1] = Ybleu[b-1]-50 
     if n == 4 : 
       t.goto(Xbleu[b-1]+50,Ybleu[b-1]-50) 
       t.down() 
       t.goto(Xbleu[b-1]+50,Ybleu[b-1]-50) 
       Xbleu[b-1] = Xbleu[b-1]+50 
       Ybleu[b-1] = Ybleu[b-1]-50 
     t.color(255,255,255) 
     t.write(b,False,align = "left",font=("Arial",10,"normal")) 






# Déroulement de la partie (the game's sequence of events) 



turns = int(input("maximum number of turns :")) 

t.width(30) 

for i in range(1,turns+1) : 

     # Red player's turn 

     r = int(input("pion rouge numéro : ")) 
     n=int(input("direction =") 
     direction_rouge() 

     for i in range(0,15) : #checks if there was another piece on the board 

       if Xrouge[r-1]==Xbleu[i] and Yrouge[r-1]==Ybleu[i] : 
         t.color(255,255,255) 
         t.begin_fill() 
         t.circle(15) 
         t.end_fill() 
         t.color(255,0,0) 
         direction_rouge() 
         #Xbleu[i]=0 
         #Ybleu[i]=0 

     t.color(255,255,255) 
     t.write(r,False,align = "left",font=("Arial",10,"normal")) 

     # Blue player's turn 

     b = int(input("pion bleu numéro : ")) 
     n=int(input("direction =") 
     direction_bleu() 

     for i in range(0,15) :  #same role 
       if Xbleu[b-1]==Xrouge[i] and Ybleu[b-1]==Yrouge[i] : 
         t.color(255,255,255) 
         t.begin_fill() 
         t.circle(15) 
         t.end_fill() 
         t.color(0,0,255) 
         direction_bleu() 
         #Xrouge[i]=0 
         #Yrouge[i]=0 

     t.color(255,255,255) 
     t.write(b,False,align = "left",font=("Arial",10,"normal")) 



print("La partie est finie. (The game is over)") 
+0

エラーの行とメッセージを貼り付けていませんでした。 – lucasnadalutti

+0

エラーはどの機能で発生しますか?スタックトレースを提供できますか? – MrPromethee

+0

エラーメッセージを含めてください、我々は透視的ではありません。 – MaxLunar

答えて

3

この行がアンバランス括弧を持っています。これは、次の行の最初のトークンを読み取るときに構文エラーを引き起こしています。あなたのコード内で二回

n=int(input("direction =")) 

このエラーが表示されます:

n=int(input("direction =") 

修正が閉じ括弧を追加することです。各場所で固定する必要があります。

+0

ありがとうございました:) – Iska

関連する問題