2017-05-30 5 views
0

私は偽の3x3ティックタックトーボードを描こうとしています。私はPythonの初心者です。なぜこれがうまくいかないのか分かりません。ヘルプをいただければ幸いです。ありがとう!Pythonティックタックトーボードを描く

def draw(): 
    for i in range(4): 
     board = (" ___ " * 3) 

    for i in board: 
     ("| " * 4).join(board) 

    print(board) 


draw() 

EDIT:

決勝コード:

def draw(): 
    board = '' 

    for i in range(-1,6): 

     if i%2==0: 
      board += '|  ' * 4 
      board += '\n|  |  |  |' 

     else: 
      board += ' _____ ' * 3 

     board += '\n' 
    print (board) 

draw() 

出力:

_____ _____ _____ 
|  |  |  |  
|  |  |  | 
_____ _____ _____ 
|  |  |  |  
|  |  |  | 
_____ _____ _____ 
|  |  |  |  
|  |  |  | 
_____ _____ _____ 

ダブル編集:

別の方法:

def drawsmall(): 
    a = (' ___' * 3) 
    b = ' '.join('||||') 
    print('\n'.join((a, b, a, b, a, b, a,))) 

drawsmall() 

出力:join機能がどのように動作するか

___ ___ ___ 
| | | | 
___ ___ ___ 
| | | | 
___ ___ ___ 
| | | | 
___ ___ ___ 
+1

あなたが何を意味するか説明してください "は動作しません。" –

+0

'ボード内のために:'はボードに整数が含まれていないので動作しません – TGKL

+1

@TGKL、いいえ、文字列を繰り返し処理することもできます。しかし、ここではそれは別の問題です。 – Kevin

答えて

1

が、私はそれが簡単にボードの行各反復を印刷し、一つのループでこれを行うことがわかりました。 %演算子を使用して、現在の反復が偶数か奇数かを確認して、垂直と水平のバーを交互に切り替えることができます。

文字列の場合は、joinを使用する必要はありません。+=演算子を追加する方がより明確になります。

def draw(): 
    # initialize an empty board 
    board = "" 

    # there are 5 rows in a standard tic-tac-toe board 
    for i in range(5): 
     # switch between printing vertical and horizontal bars 
     if i%2 == 0: 
      board += "| " * 4 
     else: 
      board += " --- " * 3 
     # don't forget to start a new line after each row using "\n" 
     board += "\n" 

    print(board) 

draw() 

出力:

| | | |  
--- --- --- 
| | | |  
--- --- --- 
| | | | 
+0

あなたの方法は動作します!ありがとう。 –

0

検索します。まず、与えられた文字列を受け取り、それを他のものを結ぶ文字列である "グルー"に使用します。第二に、は、を返します。 join操作で結果を保存できません。

ネストされたループでこれを最初に実行してください:1行のボックスを印刷し、次に水平方向の仕切りなどを印刷します。次に、1ビット単位で出力します。

0

あなたはこれを試すことができます。

def draw(): 
    return [["__" for b in range(3)] for i in range(3)] 

は、今すぐあなたのボードが含まれているリストのリストを持っています。それをプリントアウトするには、この操作を行うことができます。

the_board = draw() 

for i in the_board: 
    for b in i: 

     print('|'.join(i), end="") 

    print() 

print(" | | ") 
+0

助けてくれてありがとう。私がしたことを見て、それはうまくいった。 –