私は、ゲームプロジェクトに取り組んで、新しいゲームを開始したときにユーザー作成のプロンプトを作成しようとしていて、入力したユーザー名がまだ新しい終了します。そうでない場合は、ユーザー名がすでに存在する場合は統計情報を追加します。これらの統計は、勝利、損失、引き分けであり、ユーザーの統計に追加されます。ユーザーの作成と統計の追加
私は2つのオプションを考えることができました。最初に、ユーザー名をキーとした辞書とその統計値のネストされたリストを作成するか、またはユーザー名関数と関数を持つクラスを作成します勝利リスト、損失リストなどの各リスト。
何か助けやアイデアをいただければ幸いです!
1月28日編集:コードの要求ごととして
、私は達成するために探しているものを私が持っていると何のセグメントを投稿します...
パート1 - ユーザー名を作成:
while True:
playerinput = input("Please type a number correlating with your menu choice, or 4 to return to main menu: ")
if playerinput == "1":
game_range = range(1, 10)
play_the_game(playerinput, game_range)
elif playerinput == "2":
game_range = range(1, 26)
play_the_game(playerinput, game_range)
elif playerinput == "3":
game_range = range(1, 28)
play_the_game(playerinput, game_range)
elif playerinput == "4":
exec(open("menuitems.py").read(), globals())
else:
print("Unknown input: ", playerinput, ", please try again")
メニューオプションを選択して新しいゲームを開始した時点で(ここでコードサイズを減らすためにメニュー項目を残しておきました)、ユーザーにユーザー名を入力するように求めますこのポイントを作成し、新しいユーザーがまだ存在しない場合は作成するか、st ats。
パート2 - ユーザーの統計(これは、コードの大部分である):
def play_the_game(playerinput, game_range):
while True:
board = [" "] * (max(game_range) + 1)
plays = []
player_icon, computer_icon = player_choice()
turn = who_goes_first()
print(turn + " will get the first turn of the game")
game_in_play = True
while game_in_play:
if turn == "player":
print_the_board(board, playerinput)
print("""
Computer: Choose your move carefully, human
""")
print("Enter your move between ", min(game_range), "-", max(game_range), ", ", min(game_range),
" for top left, ", max(game_range), " for bottom right")
player_move = input("Enter your move: ")
if player_move == "e":
break
if player_move == "u":
if len(plays) == 0:
print("No more moves left to undo - you cheated your way back to the beginning!")
continue
print("I shouldn't be letting you do this - it really feels like cheating...")
player_move = plays.pop()
board[player_move] = " "
player_move = plays.pop()
board[player_move] = " "
continue
if not player_move.isdigit():
AI_insults()
continue
if int(player_move) not in game_range or not free_space_on_board(board, int(player_move)):
AI_insults()
continue
make_a_move(board, player_icon, int(player_move))
plays.append(int(player_move))
if win_condition(board, player_icon, playerinput):
print_the_board(board, playerinput)
print("Congrats! You beat that pesky computer!")
game_in_play = False
else:
if draw_condition(board, game_range):
print_the_board(board, playerinput)
print("It's a draw!")
break
else:
turn = "Computer"
else:
move = computer_move(board, computer_icon, playerinput, game_range)
plays.append(move)
make_a_move(board, computer_icon, move)
if win_condition(board, computer_icon, playerinput):
print_the_board(board, playerinput)
AI_endgame_brag()
game_in_play = False
else:
if draw_condition(board, game_range):
print_the_board(board, playerinput)
print("It's a draw!")
break
else:
turn = "player"
if not end_game():
break
私は再びこの小さなを維持しようとするそのコードで使用される機能の全体の多くを残してきましたが、どのようなI達成するためには、プレイヤーのための "win_condition"が達成される必要がありますし、 "draw_condition"の場合は+1、統計を描画するために+1、ユーザーが勝つ統計に+1を追加し、コンピュータが勝った場合は、 。
私は、ユーザーの統計情報を確認することができるメニューコードの別のセクションを持っています。ここでは、ユーザー名、勝利、損失、抽選を印刷したいと思っています。 ...そして新しいキーなどを作成し、他の、このキーを使用し、その値に追加
あなたのコード、試したこと、入力の内容、出力の内容、予想される出力の内容を教えてください。 –