この記事の例では、参考のために地主ライセンスのpythonシミュレーションの特定のコードを共有しています。具体的な内容は次のとおりです。
**トピック:**地主についての100の質問で楽しい
ポーカーは非常に人気のあるゲームです。コンピューターのトランプに関連するゲームはたくさんあります。たとえば、Windowsオペレーティングシステムに付属しているSolitaire、HeartsWarなど。ポーカーゲームでは、カードのデッキを完全にシャッフルして配置を不規則にするシャッフル操作を実行する必要があることがよくあります。
請求:
1、54 3人のプレイヤーに3枚のトランプが配られます。17枚は農家用、20枚は地主用です。
2、 ポーカーデッキを自動的に生成し、カードをシャッフルし、カードをプレーヤーに配布し、スーツのサイズに応じてプレーヤーの手にポーカーカードを配置します。 ****
'''
何百もの楽しみ-プレイカードの取り扱い-家主
プレイカードを配布するようにプログラムしてください
Version:0.1
Author: jasn
Date:2020-01-01
主な知識ポイント:ランダムの使用法、クラスの定義と呼び出し
主な機能ポイント:Pythonクラスを使用して、初期化、シャッフル、カードの処理、地主の取得、カードの管理、およびスーツのマッチングを実現します。コードは以下のように表示されます
'''
import random
classdoudizhu:
# 54枚のカードを定義する
def __init__(self):
self.a=[]for i inrange(54):
self.a.append(i)
# シャッフル
def xipai(self):
random.shuffle(self.a) #シャッフル
n = random.randint(1,54)
b = self.a[:n] #位置nからカードを切り取ります
c = self.a[n:]
self.a = b + c
# ライセンス
def fapai(self):
self.user1=self.a[0:-3:3] #プレーヤー1、カードを取得する順序は0、3、6、9です。...
self.user2=self.a[1:-3:3] #プレーヤー2、カードを取得する順序は1、4、7、10です。...
self.user3=self.a[2:-3:3] #プレーヤー3、カードを取得する順序は2、5、8、11です。...
self.user4=self.a[-3:] #ホールカード、順番は51、52、53です
# 家主
def qiangdizhu(self):
i=random.randint(1,3)
self.dizhu=i #地主のインスタンスを定義する
if i ==1:
self.user1+=self.user4
if i ==2:
self.user2+=self.user4
if i ==3:
self.user3+=self.user4
# ナンバープレート
def mapai(self):
self.user1.sort(reverse=True) ##小さいものから大きいものへ
self.user2.sort(reverse=True)
self.user3.sort(reverse=True)
# カードシーケンスとスーツの1対1の対応
def yingshe(self):
huase =[(0,'スクエアピース3'),(1,'プラム3'),(2,'ハート3'),(3,'スペードの3'),(4,'スクエアピース4'),(5,'プラム4'),(6,'ハート4'),(7,'スペードの4'),(8,'スクエアピース5'),(9,'プラム5'),(10,'ハートの5'),(11,'スペードの5'),(12,'スクエアピース6'),(13,'プラム6'),(14,'ハート6'),(15,'スペードの6'),(16,'スクエアピース7'),(17,'プラム7'),(18,'ハートの7'),(19,'スペードの7'),(20,'スクエアピース8'),(21,'プラム8'),(22,'ハート8'),(23,'スペードの8'),(24,'スクエアピース9'),(25,'プラム9'),(26,'ハートの9'),(27,'スペードの9'),(28,'スクエアピース10'),(29,'プラム10'),(30,'ハートの10'),(31,'スペードの10'),(32,'スクエアピースJ'),(33,'プラムJ'),(34,'ハートJ'),(35,'スペードのJ'),(36,'スクエアピースQ'),(37,'プラムQ'),(38,'ハートQ'),(39,'スペードQ'),(40,'スクエアK'),(41,'プラムK'),(42,'ハートK'),(43,'スペードの王'),(44,'スクエアピースA'),(45,'プラムA'),(46,'ハートのエース'),(47,'スペードのエース'),(48,'スクエアピース2'),(49,'プラム2'),(50,'ハート2'),(51,'スペードの2'),(52,'BlackJoker'),(53,'RedJoker')]
zdpai =dict(huase)
paiuser1=''for i inrange(len(self.user1)):
paiuser1+=zdpai[self.user1[i]]+' ' #カードを文字列の形で保管する
paiuser2 =''for i inrange(len(self.user2)):
paiuser2 += zdpai[self.user2[i]]+' '
paiuser3 =''for i inrange(len(self.user3)):
paiuser3 += zdpai[self.user3[i]]+' '
paiuser4 =''for i inrange(len(self.user4)):
paiuser4 += zdpai[self.user4[i]]+' '
self.user1 = paiuser1 #スーツに対応するカードのシーケンスを3人のプレーヤーのインスタンス属性に再割り当てします
self.user2 = paiuser2
self.user3 = paiuser3
self.user4 = paiuser4
if __name__ =='__main__':
Player=doudizhu() #プレイするクラスを支援する,簡単に呼び出す
Player.xipai()
Player.fapai()
Player.qiangdizhu()
Player.mapai()
Player.yingshe()print('このゲームの地主は:プレーヤー{}'.format(Player.dizhu))print('ホールカード:',Player.user4)print('プレイヤー1:',Player.user1)print('プレーヤー2:',Player.user2)print('プレーヤー3:',Player.user3)
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。
Recommended Posts