1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. Python-知識を一つに-1

Python-知識を一つに-1

2017-02-07_154830_GX1

ウオード・カニンガム

コードが動くまでは口先だけだね。

「戦争」カードゲーム

class Card:   suits = ["spades", "hearts", "daiamonds", "clubs"]
   values = ["none", "none", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"]

Cardクラスには2つのクラス変数`suitsとvaluesがあります
suitsはカードのスート(マーク)(スペード, ハート, ダイヤ, クラブ)
を表す文字列を持つリストの変数です。valuesも文字列ですが、こちらにはカード
の値を表す文字列を持っています。それぞれ、2から10の数字、ジャック、
クイーン、キング、エースをあらわします。valuesの最初の2つの要素には、リスト
インデックス操作と値が一致するように、nonを持たせています。つまり、values[2]
でリストの要素にアクセスしたら”2”を取得できます。

インスタンス変数 suitとvalue

Cardオブジェクトは、2つのインスタンス変数suitとvalueを持っています。
どちらも整数で、この2つの値でそのオブジェクトがどんなカードなのかを表します
たとへば「ハート2」のカードをつくりたければ、Cardクラスに2(数値として)
と1(スートとして、suitsのインデックスは1はハート)をあわわします。
Cardクラスは、特殊メソッド__lt__と__gt__を定義しています。
この2つのメソッドのおかげで、Cardのオブジェクトは大小比較の演算子で
比較できるようになります。