2017-06-27 4 views
0

誰でもこのプログラムを変更して2人のプレイヤーがプレイできるように助けてくれますか? は、あなたがクラスを使用してこのコードを実装することで多くのことを学ぶことができましたこのプログラムをPythonで2人プレイヤーにするにはどうすればいいですか?

def dice(sides): 
# 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? ") 
import random 
position=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=input("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: 
     print("You are now on space", position+total) 
     position=total+position 
    if position>=49: 
     print("You have won") 
     if position<=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") 
     if position<=0: 
       print("You are on space 0") 
     else: 
       print("You are now on space", position-total) 
#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 
+0

ようこそスタックオーバーフロー! [ツアー](https://stackoverflow.com/tour)を見て回り、[ヘルプセンター](https://stackoverflow.com/help)を読んでください。[どうすればよいですか良い質問?](https://stackoverflow.com/help/how-to-ask)と[ここではどのようなトピックについて聞かせていただけますか?](https://stackoverflow.com/help/on-topic)を参照してください。その2番目のリンクから:「宿題の助けを求める質問には、問題を解決するために今まで行ってきた作業の概要と、それを解決している困難の説明が含まれていなければなりません。 –

答えて

0

を投げるサイコロをシミュレートするための手順を定義します。

できるだけ類似したコードを使用している限り、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人のプレイヤーのためのような簡単な一般化から始まります。

関連する問題