クラスデータを配列に格納し、必要に応じてこのデータを呼び出すにはどうすればよいですか?

bkoohy

私はゲームSnakeeyesのバージョンを作成しようとしています。これは、プログラムの開始時にnを取り込み、nはプレーヤーの数です。
これまでのところ、私はこれまでに何とか到達しました:

import random


def rollDice():
    dice = random.randint(1, 6)
    print "You rolled a", dice
    return dice


def addUser(name):
    name = player()
    print name, "is a player"


class player():
    score = 0
    players = []
    def __init__(self):
        score = 0
        player.score = score


    def addScore(self, dice1, dice2):
        if dice1 == 1 or dice2 == 1:
            player.score = 0
            if dice1 == 1 and dice2 == 1:
                print "SNAKE EYES"
        else:
            player.score += dice1
            player.score += dice2
        return player.score


    def dispScore(self):
        return player.score



numbp = int(input("Please enter number of players \n"))
plyarr = dict()
for x in range(numbp):
    plyarr[x] = player()
    plyarr[x].addScore(rollDice(),rollDice())

for x in range(numbp):
    print plyarr[x].score

ただし、Pythonの動作方法や、クラス(など)を使用してこの種のプログラミングを高速化する方法がわからないため、動作させることができません。主な問題は、辞書の同じ場所を上書きすることがよくあることです(辞書を使用している場合)。

ピクメイトニルヴァーナ

書き直されたプレイヤークラス:

class player():
    def __init__(self):
        self.score = 0
        self.players = []


    def addScore(self, dice1, dice2):
        if dice1 == 1 or dice2 == 1:
            player.score = 0
            if dice1 == 1 and dice2 == 1:
                print "SNAKE EYES"
        else:
            self.score += dice1
            self.score += dice2

        return self.score


    def dispScore(self):
        return self.score

    def __str__(self):
        return '<a description of the current object>'

あなたのコメントから、あなたはプレーヤーを辞書に保存する方法について質問していると思います。あなたは次のようにそれを行うことができます(あなたの元のコードに小さな変更を加えました)

numbp = int(input("Please enter number of players \n"))
plyarr = dict()

for x in range(numbp):
    current_player = player()
    current_player.addScore(rollDice(),rollDice())
    playarr[x] = current_player

そして最後に、プレーヤーのスコアを表示します。

for player_id, player in plyarr.items():
    print player.dispScore()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

インラインアセンブリを使用して配列に格納されている16進データを呼び出すにはどうすればよいですか?

分類Dev

C ++共用体は、それに格納されている型と、呼び出すデストラクタをどのように認識しますか?

分類Dev

DataSetのDataTableストアからデータを取得して配列に格納するにはどうすればよいですか?

分類Dev

配列(JavaScript)のpromise内にデータを格納するにはどうすればよいですか?

分類Dev

PHP変数を配列に格納して呼び出すにはどうすればよいですか?

分類Dev

変数に格納されている配列にデータを格納するにはどうすればよいですか?

分類Dev

同じメソッドを複数回呼び出すようにディスパッチし、WPFアプリのパラメーターとして呼び出し順序番号を指定するにはどうすればよいですか?

分類Dev

異なる週の間にデータを選択し、それらをグループ化して、スライスされたDataFrameを週ごとに配列に格納するにはどうすればよいですか?、

分類Dev

API呼び出しからのデータは配列に格納されますが、さらに使用するためにその配列を関数で使用しようとすると、配列が空であることが示されます。どうして?

分類Dev

コードブロックを変数に格納して呼び出し、必要に応じて戻り値を取得するにはどうすればよいですか?

分類Dev

Haxe:コンストラクターで渡す型の配列にデータを格納するようにクラスを設定するにはどうすればよいですか?

分類Dev

変数に格納されている名前を介して文字列リソースを呼び出すにはどうすればよいですか?

分類Dev

Forループを使用して複雑なデータを配列に格納するにはどうすればよいですか?

分類Dev

2つのループを回避し、データをPerlの配列に格納するにはどうすればよいですか?

分類Dev

NodeJSのデータベースへの複数の非同期呼び出しの途中で応答を送信するにはどうすればよいですか?

分類Dev

JavaでPOIを使用して、Excelシートから特定の列データを取得してオブジェクトの配列リストに格納するにはどうすればよいですか?

分類Dev

メンバー関数の最後でデストラクタの呼び出しをバイパスするにはどうすればよいですか?

分類Dev

Pythonにhh:mm:ss形式のデータ時間を取得させて配列に格納するにはどうすればよいですか?

分類Dev

NSUserDefaultsを使用してカスタムクラスの配列をSwiftに格納するにはどうすればよいですか?

分類Dev

セルフメソッドを呼び出してフラスコ内のデータを取得するにはどうすればよいですか?

分類Dev

データに応じてラベルの画像を使用するにはどうすればよいですか?

分類Dev

メソッド呼び出しを呼び出す代わりにRubyの配列に格納するにはどうすればよいですか?

分類Dev

呼び出されたモデルに応じてresource_urlのリソースを変更するにはどうすればよいですか?

分類Dev

非同期呼び出し中に配列にデータを入力して、応答オブジェクトで送信するにはどうすればよいですか?

分類Dev

同じクラスでゲッターの呼び出しを必須にするにはどうすればよいですか

分類Dev

std イテレータのデストラクタを明示的に呼び出すにはどうすればよいですか?

分類Dev

データをマップして、必要に応じてコンマとスペースを追加するにはどうすればよいですか?

分類Dev

Java配列に格納されているデータをJavaScriptに使用するにはどうすればよいですか?

分類Dev

複数のユーザー入力(String、Int、Double)を配列/配列リストに格納し、格納されたデータ(Java)を出力するにはどうすればよいですか?

Related 関連記事

  1. 1

    インラインアセンブリを使用して配列に格納されている16進データを呼び出すにはどうすればよいですか?

  2. 2

    C ++共用体は、それに格納されている型と、呼び出すデストラクタをどのように認識しますか?

  3. 3

    DataSetのDataTableストアからデータを取得して配列に格納するにはどうすればよいですか?

  4. 4

    配列(JavaScript)のpromise内にデータを格納するにはどうすればよいですか?

  5. 5

    PHP変数を配列に格納して呼び出すにはどうすればよいですか?

  6. 6

    変数に格納されている配列にデータを格納するにはどうすればよいですか?

  7. 7

    同じメソッドを複数回呼び出すようにディスパッチし、WPFアプリのパラメーターとして呼び出し順序番号を指定するにはどうすればよいですか?

  8. 8

    異なる週の間にデータを選択し、それらをグループ化して、スライスされたDataFrameを週ごとに配列に格納するにはどうすればよいですか?、

  9. 9

    API呼び出しからのデータは配列に格納されますが、さらに使用するためにその配列を関数で使用しようとすると、配列が空であることが示されます。どうして?

  10. 10

    コードブロックを変数に格納して呼び出し、必要に応じて戻り値を取得するにはどうすればよいですか?

  11. 11

    Haxe:コンストラクターで渡す型の配列にデータを格納するようにクラスを設定するにはどうすればよいですか?

  12. 12

    変数に格納されている名前を介して文字列リソースを呼び出すにはどうすればよいですか?

  13. 13

    Forループを使用して複雑なデータを配列に格納するにはどうすればよいですか?

  14. 14

    2つのループを回避し、データをPerlの配列に格納するにはどうすればよいですか?

  15. 15

    NodeJSのデータベースへの複数の非同期呼び出しの途中で応答を送信するにはどうすればよいですか?

  16. 16

    JavaでPOIを使用して、Excelシートから特定の列データを取得してオブジェクトの配列リストに格納するにはどうすればよいですか?

  17. 17

    メンバー関数の最後でデストラクタの呼び出しをバイパスするにはどうすればよいですか?

  18. 18

    Pythonにhh:mm:ss形式のデータ時間を取得させて配列に格納するにはどうすればよいですか?

  19. 19

    NSUserDefaultsを使用してカスタムクラスの配列をSwiftに格納するにはどうすればよいですか?

  20. 20

    セルフメソッドを呼び出してフラスコ内のデータを取得するにはどうすればよいですか?

  21. 21

    データに応じてラベルの画像を使用するにはどうすればよいですか?

  22. 22

    メソッド呼び出しを呼び出す代わりにRubyの配列に格納するにはどうすればよいですか?

  23. 23

    呼び出されたモデルに応じてresource_urlのリソースを変更するにはどうすればよいですか?

  24. 24

    非同期呼び出し中に配列にデータを入力して、応答オブジェクトで送信するにはどうすればよいですか?

  25. 25

    同じクラスでゲッターの呼び出しを必須にするにはどうすればよいですか

  26. 26

    std イテレータのデストラクタを明示的に呼び出すにはどうすればよいですか?

  27. 27

    データをマップして、必要に応じてコンマとスペースを追加するにはどうすればよいですか?

  28. 28

    Java配列に格納されているデータをJavaScriptに使用するにはどうすればよいですか?

  29. 29

    複数のユーザー入力(String、Int、Double)を配列/配列リストに格納し、格納されたデータ(Java)を出力するにはどうすればよいですか?

ホットタグ

アーカイブ