私は、3 つの異なる整数を生成し、それらを個々の値に割り当てて、1 番目、2 番目、3 番目に進むことを決定できるようにするプログラムに取り組んでいます。この場合、3 人の異なるプレイヤーがいて、それぞれが「10 面ダイス」を振ると想定しています。一番高い人が最初のターンを取得し、2 番目に高い人が 2 番目に、3 番目が最後に行く必要があります。すべてが順調に進んでいるように見えますが、自分の価値観を理解した今、プレイヤーが順番にプレイできるようにそれらを調整する方法がわかりません。ご意見をいただければ幸いです。
これまでにまとめたコードは次のとおりです。
import sys
import os
import random
import time
os.system('clear')
print ('Welcome! Please type Player 1\'s name!: ')
playerOne = input()
print ('Okay! Please type Player 2\'s name!: ')
playerTwo = input()
print ('Fantastic! Finally, please type Player 3\'s name!: ')
playerThree = input()
os.system('clear')
print()
time.sleep(2)
def startFightRoll():
playerOneRoll = random.randint(1,10)
time.sleep(.5)
print('Okay, let\'s roll a ten-sided die to see who gets to go first!')
print()
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerOne + ' rolls ' + str(playerOneRoll))
print()
print()
playerTwoRoll = random.randint(1,10)
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerTwo + ' rolls ' + str(playerTwoRoll))
print()
print()
playerThreeRoll = random.randint(1,10)
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerThree + ' rolls ' + str(playerThreeRoll))
startFightRoll()
以下のスレッドに対応して;
さて、私はこれに慣れていないので、私のコードを許してください - それは効率的ではなく、私はまだ物事に慣れています. 1) プレイヤーが名前フィールドに何も入力しないこと、および 2) ダイスロールで同点が生成されることに対処するために、それにいくつかの部分を追加しました。サイコロの出目を降順で並べたリストも作成しましたが、今度は出目を生成したユーザーに関連付ける方法を見つける必要があります。これを適切に行う方法についての指針は非常に高く評価されています。
import sys
import os
import random
import time
os.system('clear')
def playerOneName():
global playerOne
playerOne = input()
if len(playerOne) < 1:
print('Please enter your name, Player 1!')
playerOneName()
def playerTwoName():
global playerTwo
playerTwo = input()
if len(playerTwo) < 1:
print('Please enter your name, Player 2!')
playerTwoName()
def playerThreeName():
global playerThree
playerThree = input()
if len(playerThree) < 1:
print('Please enter your name, Player 3!')
playerThreeName()
os.system('clear')
print()
time.sleep(2)
def startFightRoll():
global playerOneRoll
global playerTwoRoll
global playerThreeRoll
playerOneRoll = random.randint(1,10)
time.sleep(.5)
print('Okay, let\'s roll a ten-sided die to see who gets to go first!')
print()
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerOne + ' rolls ' + str(playerOneRoll))
print()
print()
playerTwoRoll = random.randint(1,10)
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerTwo + ' rolls ' + str(playerTwoRoll))
print()
print()
playerThreeRoll = random.randint(1,10)
time.sleep(2)
print ('<Ten-sided dice roll> ')
print ('---------------------------------')
print (playerThree + ' rolls ' + str(playerThreeRoll))
if playerOneRoll == playerTwoRoll:
print ('There\'s a tie, rolling again!')
time.sleep(3)
os.system('clear')
startFightRoll()
if playerOneRoll == playerThreeRoll:
print ('There\'s a tie, rolling again!')
time.sleep(3)
os.system('clear')
startFightRoll()
if playerTwoRoll == playerThreeRoll:
print ('There\'s a tie, rolling again!')
os.system('clear')
time.sleep(3)
startFightRoll()
O = [playerOneRoll, playerTwoRoll, playerThreeRoll]
O = sorted(O, reverse = True)
print (O)
print ('Welcome! Please type Player 1\'s name!: ')
playerOneName()
print ('Okay! Please type Player 2\'s name!: ')
playerTwoName()
print ('Fantastic! Finally, please type Player 3\'s name!: ')
playerThreeName()
os.system('clear')
startFightRoll()