-1

このタスクは、ゲームのキャラクターから、強さとスキルの 2 つの属性の違いを判断することです。このプロセスは次のとおりです。

  • 強さの属性の違いを決定します。
  • 差を 5 で割り、切り捨てて「強度修正」を作成します。
  • 同じプロセスがスキル属性と名前付きの「スキル修飾子」に対して実行されます。
  • その後、ゲームが始まります:
    • 両方のプレイヤーが 6 面ダイスを投げます。
    • 値が同じ場合、変更は発生しません。
    • 値が異なる場合は、値が最も高いプレイヤーが以前に計算された強さとスキルを獲得し、合計に追加されます。最も低い値を持つプレーヤーは、合計から取り除かれた強さとスキルを持っています。

これは、strength 属性が 0 以下になるまで繰り返さなければなりませんが、この部分はできません。ループする方法は知っていますが、これは常に、ユーザーに再度実行するかどうかを尋ねることによって行われます。

c1sc=random.randint(1,6)
c2sc=random.randint(1,6)
if c1sc > c2sc:
    c1st=c1st+strengthmodifier
    c2st=c2st-strengthmodifier
    c1sk=c1sk+skillmodifier
    c2sk=c2sk-skillmodifier
    print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
    print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
elif c2sc > c1sc:
    c1st=c1st-strengthmodifier
    c2st=c2st+strengthmodifier
    c1sk=c1sk-skillmodifier
    c2sk=c2sk+skillmodifier
    print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
    print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
else:
    print('It\'s a draw, no changes were made.')
if c1sk < 0:
    c1sk=0
elif c2sk < 0:
    c2sk=0

if c1st < 0:
    print('Character 1 died. Game over.')
elif c2st < 0:
    print('Character 2 died. Game over.')

助けてください!

4

3 に答える 3

1

whileループを紹介します。指定した条件が true または false の場合に何かを発生させたい場合に使用します。

コードを簡単に編集しました。

インポートランダム

def main():
 player1=20
 player2=12
 strength=(20-10)/5
 strength_mod=int(strength)
 while player1>0 and player2>0:
  dice1=random.randint(1,6)
  dice2=random.randint(1,6)
  if dice1>dice2:
    player1+=strength_mod
    player2-=strength_mod
    print("Player 1 strength is:  ", player1)
    print("Player 2 strength is:  ", player2)
  elif dice1<dice2:
    player2+=strength_mod
    player1-=strength_mod
    print("Player 1 strength is:  ", player1)
    print("Player 2 strength is:  ", player2)

main()

プレーヤー 1 と 2 に初期値を与えましたが、これらは好みに合わせて変更できます。端数を切り捨てるために、別の変数を作成し、強さを整数に変更しました。

于 2013-11-04T18:49:06.973 に答える