3

初めてここに書く..Pythonで「サイコロを振る」プログラムを書いていますが、毎回乱数を生成することができないため、行き詰まっています。

これは私が今まで持っているものです

import random

computer= 0 #Computer Score
player= 0 #Player Score

print("COP 1000 ")
print("Let's play a game of Chicken!")

print("Your score so far is", player)

r= random.randint(1,8)

print("Roll or Quit(r or q)")

これで、rを入力するたびに、同じ番号が何度も生成されます。毎回変えたいだけです。

毎回番号を変えてほしいのですが、教授に聞いてみたらこう言ってくれました。繰り返しますが、私はそれを行う方法について何も持っていません:-/


ちなみにこれが私にプログラムを見せてくれる方法です

COP 1000
Let's play a game of Chicken!
Your score so far is 0
Roll or Quit(r or q)r

1

r

1

r

1

r

1

画像を投稿したいのですが、投稿できません


私の質問に答えてくれた皆さんに感謝します!あなたの答えの一つ一つが役に立ちました!**皆さんに感謝します。プロジェクトを時間どおりに完了させます。ありがとうございました

4

5 に答える 5

1

どのサイコロが8つの数字を持っているのかわからないので、6を使いました.

それを行う1つの方法は、シャッフルを使用することです。

import random
dice = [1,2,3,4,5,6]
random.shuffle(dice)
print(dice[0])

毎回、リストをランダムにシャッフルして最初のリストを取得します。

于 2013-01-31T03:24:17.327 に答える
1

単純に使用します:

import random
dice = [1,2,3,4,5,6]       #any sequence so it can be [1,2,3,4,5,6,7,8] etc
print random.choice(dice)
于 2013-01-31T04:12:00.877 に答える
1
import random

computer= 0 #Computer Score
player= 0 #Player Score

print("COP 1000 ")
print("Let's play a game of Chicken!")

print("Your score so far is", player)

r= random.randint(1,8) # this only gets called once, so r is always one value

print("Roll or Quit(r or q)")

あなたのコードにはかなりの数のエラーがあります。ループしていないため、これは一度だけ機能します。改善されたコード:

from random import randint
computer, player, q, r = 0, 0, 'q', 'r' # multiple assignment
print('COP 1000')  # q and r are initialized to avoid user error, see the bottom description
print("Let's play a game of Chicken!")
player_input = '' # this has to be initialized for the loop
while player_input != 'q':
    player_input = raw_input("Roll or quit ('r' or 'q')")
    if player_input == 'r':
        roll = randint(1, 8)
    print('Your roll is ' + str(roll))
    # Whatever other code you want
    # I'm not sure how you are calculating computer/player score, so you can add that in here

whileループは、ステートメントが false になるまで、その下 (インデントされている) のすべてを実行します。したがって、プレーヤーが を入力qすると、ループが停止し、プログラムの次の部分に進みます。参照: Python ループ --- チュートリアル ポイント

Python 3 の厄介な部分 (それを使用していると仮定して) は、raw_input. ではinput、ユーザーが入力したものは何でも Python コードとして評価されます。したがって、ユーザーは「q」または「r」を入力する必要があります。ただし、ユーザー エラー (プレイヤーが引用符なしで単にqorrを入力した場合) を回避する方法は、これらの変数をそのような値で初期化することです。

于 2013-01-31T04:16:37.883 に答える