を投げるサイコロをシミュレートするための手順を定義します。
できるだけ類似したコードを使用している限り、2番目のプレーヤーを追加する方法はたくさんあります。
あなたは、たとえばプレイヤー2の位置を保存するために別の変数position_p2
を追加し、次のように、あなたがplayer2上のプレイヤー1のために何をチェック同じ繰り返しができます
def dice(sides): # NOTE function names should start with verbs, e.g. roll_dice
# Get a random number between 1 and 6
throw=random.randint(1,6)
print("score",throw)
return throw
#Welcome messages
print("Snakes and ladders")
#Main program for the game
Player1=input("What is the name of player 1? ") #NOTE variables should be lower case
# Ask player2 for it's name
player2 = input("What is the name of player 2? ")
import random #NOTE imports should go at the beggining of the script
position_p1=0 # rename so that is easy to remember that it refers to p1
# store p2 position
positoin_p2 = 0
#eeping it all in a loop will allow the players to keep rolling the dice until the game has finished
while position<49:
throw_p1=input("Player 1: roll the dice") #same as above
dice1=dice(6)
dice2=dice(6)
total=dice1+dice2
#If the total of the dice thrown is not a double the player will move the total numbers of squares
if dice1!=dice2:
position_p1=total+position_p1 # you can use position_p1 += total
print("You are now on space", position_p1)
if position_p1>=49:
print("Player 1 won") # Change so that you know which player has won
if position_p1<=0:
print("You are on square 0")
#Now I will check to see if the player has rolled a double
if dice1==dice2:
print("This is a double you will now move back",total,"spaces")
position_p1 -= total
if position_p1<=0:
print("You are on space 0")
else:
print("You are now on space", position_p1)
#This means that if the vaule of dice1 is the same as dice2 then it will move back and if not it will move forward
throw_p2=input("Player 2: roll the dice")
dice1=dice(6)
dice2=dice(6)
total=dice1+dice2
#If the total of the dice thrown is not a double the player will move the total numbers of squares
if dice1!=dice2:
position_p2=total+position_p2 # you can use position_p1 += total
print("You are now on space", position_p2)
if position_p2>=49:
print("Player 2 won") # Change so that you nkow which player has won
if position_p2<=0:
print("You are on square 0")
#Now I will check to see if the player has rolled a double
if dice1==dice2:
print("This is a double you will now move back",total,"spaces")
position_p2 -= total
if position_p2<=0:
print("You are on space 0")
else:
print("You are now on space", position_p2)
#This means that if the vaule of dice1 is the same as dice2 then it will move back and if not it will move forward
これは、これを行うための最善の方法ではありませんしかし、それはうまくいくはずで、あなたが投稿したコードに似ています。コードを改善したい場合は、関数内の2人のプレイヤーが同じ部分を試してみてください。また、プレイヤーの位置を辞書に格納して、n人のプレイヤーにゲームを拡張することもできます。練習したい場合は、ゲーム内の各事柄(ゲーム自体、プレーヤーなど)にクラスを作ることができます。あなたにできることはたくさんありますが、n人のプレイヤーのためのような簡単な一般化から始まります。
ようこそスタックオーバーフロー! [ツアー](https://stackoverflow.com/tour)を見て回り、[ヘルプセンター](https://stackoverflow.com/help)を読んでください。[どうすればよいですか良い質問?](https://stackoverflow.com/help/how-to-ask)と[ここではどのようなトピックについて聞かせていただけますか?](https://stackoverflow.com/help/on-topic)を参照してください。その2番目のリンクから:「宿題の助けを求める質問には、問題を解決するために今まで行ってきた作業の概要と、それを解決している困難の説明が含まれていなければなりません。 –