2016-09-06 4 views
0

私は各トスのためにノックアウトされたピンの数からなるボウリングスコアを読み込むパイソンプログラムを作成しようとしています。私はピン数がノックダウンしているend = "" snippetを使用してボウリングスコアボードを作成する方法

1 2 3 4 5 6 7 8 9 10 
+---+---+---+---+---+---+---+---+---+-----+ 
|8 /|7 2|9 /|X |- 7|X |- -|9 /|X |X 9 /| 
| 17| 26| 63| 70| 80| 80| --|100|129| 149| 
+---+---+---+---+---+---+---+---+---+-----+ 

2つのリスト内の各フレームのスコアと取得するためにそれらを介して10回を繰り返すだろう:私はこのようなボーリングのスコアボードに似た出力を作成しようとしています10フレーム。私はさまざまな方法を試しましたが、私は多くの運がありません。これまでのところ、私はこれのようなものを持っています(フレームがリストの正しい値にアクセスしていると仮定します)。

for frame in range(1, 11): 
    if frame <= 9: 
     print(" {:d} \n+---\n| \n|{:d}\n+---".format(frame,frame),end="") 
    else: 
     print(" {:d} \n+-----\n| \n|{:d}\n+-----".format(frame,frame),end="") 

皆さんからのご意見はありますか?どうもありがとうございます!

+6

あなたは*テキスト*を持っていますので、画像としてではなく、そのまま投稿してください。 –

+0

ピンのノックダウンのリストを使って、そこから得点を計算してください。また、あなたは実際の得点で何かをしましたか?すべてのコードはフレーム番号で処理されているようです。 –

答えて

0

\nが呼び出されたら、元に戻ってその行を再度変更することはできません。やりたいこと4つの文字列を構築した後、最後に連続してすべてを印刷します:

def addEndCaps(lines): 
    lines[1] += "+" 
    lines[2] += "|" 
    lines[3] += "|" 
    lines[4] += "+" 

lines = [ "", "", "", "", "" ] 
for frame in range(1,11): 
    lines[0] += " %d " % frame 
    lines[1] += "+---" 
    lines[2] += "| " 
    lines[3] += "| " 
    lines[4] += "+---" 

addEndCaps(lines) 
print("\n".join(lines)) 

これは、このような出力を生成します

明らか
1 2 3 4 5 6 7 8 9 10 
+---+---+---+---+---+---+---+---+---+---+ 
| | | | | | | | | | | 
| | | | | | | | | | | 
+---+---+---+---+---+---+---+---+---+---+ 

あなたが少しをしなければならないとしていますハイフンとスペースが2桁と3桁の数字の場合に並んでいることを確認するための書式設定ロジックを使用します。

実際にend=""を使用して心臓を設定している場合(つまり、学校の割り当てのために)、5行1列の出力を作成する必要があります:5 for

関連する問題