Python-----模擬撲克紙牌游戲


運用類完成一個撲克牌類(無大小王)的小游戲:
用戶需要輸入用戶名,以下為用戶可選選項:
1. 洗牌
2. 隨機抽取一張
3. 指定抽取一張
4. 從小到大排序
5. 退出

  1. 洗牌:每次執行的結果順序隨機。
  2. 隨機抽取一張:顯示結果為:太白金星您隨機抽取的牌為:黑桃K
  3. 指定抽取一張:
    用戶輸入序號(1~52)
    比如輸入5,顯示結果為:太白金星您抽取的第5張牌為:黑桃A
  4. 將此牌從小到大顯示出來。A -> 2 -> 3 .......-> K

提供思路:
52張牌可以放置一個容器中。
用戶名,以及盛放牌的容器可以封裝到對象屬性中。

low版
import random
class Cards:
def init(self,name,allcards):
self.name = name
self.allcards = allcards

def shuffle_card(self):
    print(list(set(self.allcards)))

def take_card(self):
  z1 = self.allcards
  random.shuffle(z1)
  print(f'{self.name}您隨機抽取的牌為:{z1[0]}')

def draw(self):
    num = int(input('請輸入指定的牌順序:').strip())
    print(f'{self.name}您抽取的第{num}張牌為:{self.allcards[num - 1]}')

def sorting(self):
    print(self.allcards)

def end(self):
    exit()

print('1.洗牌\n2.隨機抽取一張\n3.指定抽取一張\n4.從小到大排序\n5.退出\n')

n = input('請輸入用戶名:').strip()
while 1:
allcards = []
lis1 = ['紅心', '草花', '黑桃', '方片']
for i in lis1:
for k in range(1, 14):
if k == 1:
allcards.append((i, 'A'))
elif k == 11:
allcards.append((i, 'J'))
elif k == 12:
allcards.append((i, 'Q'))
elif k == 13:
allcards.append((i, 'K'))
else:
allcards.append((i, k))
num = int(input('請輸入序號選擇:').strip())
s1 = Cards(n,allcards)
dic = {1: s1.shuffle_card,2: s1.take_card,3: s1.draw,4: s1.sorting,5: s1.end}
dicnum

進階版
import random
class Poker:
rank = ['A'] + [str(i) for i in range(2,11)] + list('JQK')
color = '黑桃 紅心 方片 梅花'.split()
def init(self,username):
self.username = username
self.cards = [(c,r) for c in self.color for r in self.rank]

def shuffle(self):
    random.shuffle(self.cards)
    return self.cards

def _random(self):
    card = random.choice(self.cards)
    return f'{self.username}您隨機抽取的牌為: {card[0]}{card[1]}'

def appoint(self):
    num = input('請輸入選項:').strip()
    card = self.cards[int(num)-1]
    return  f'{self.username}您抽取的第{num}張牌為: {card[0]}{card[1]}'

def sort(self):
    self.sort_card = [(c,r)for r in self.rank for c in self.color]
    return self.sort_card

def exit_out(self):
    exit('成功退出程序')

def main():
choice_dict = {
1 : Poker.shuffle,
2 : Poker._random,
3 : Poker.appoint,
4 : Poker.sort,
5 : Poker.exit_out,
}
while 1:
username = input('請輸入用戶名:').strip()
obj = Poker(username)
print(
'''
1.洗牌
2.隨機抽取一張
3.指定抽取一張
4.從小到大排序
5.退出
'''
)
choice_num = input('請輸入選項:').strip()
print(choice_dictint(choice_num))

if name == 'main':
main()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM