python-21點小遊戲(簡單版,不需要random函式)
利用set集合的無序性替代random隨機,只是簡單的實現,可以在這個基礎上升級成多人版本,Python還是剛剛學習階段,主要參考實現就好,不要介意我的板書(程式碼很亂)。
#牌面列表
paimian = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
#花色列表
huase = ['♦','♣','♥','♠']
#玩家1和玩家2的空列表
play1 = list()
play2 = list()
#利用set集合的字串無序不重複代替random
paiset = set()
#牌的順序的空列表
pailist = list()
#初始化set集合將元素追加到list列表中
for i in range(52):
paiset.add(str(i))
for i in paiset:
pailist.append(i)
#先給玩家1和玩家2的列表追加兩張牌
play1.append(int(pailist[0]))
play1.append(int(pailist[1]))
play2.append(int(pailist[2]))
play2.append(int(pailist[3]))
'''
printpai函式用於列印當前玩家的牌的資訊
'''
def printpai(play1,play2):
print("play1:",end=" ")
for i in play1:
pm = int(i % 12)
hs = int((i+1) % 4)
print(paimian[pm] + huase[hs],end=" ")
print("\nplay2:",end=" ")
for i in play2:
pm = int(i % 12)
hs = int((i+1) % 4)
print(paimian[pm] + huase[hs], end=" ")
'''
judge函式用於結算最終玩家的點數
'''
def judge():
print("\n______________________")
jp1 = [0,0]
flag1 = False
jp2 = [0,0]
flag2 = False
#判斷玩家1是否含有A,若含有A則有兩種點數
for i in play1:
if i % 12 == 0:
jp1[0]+=1
jp1[1]+=11
flag1 = True
else:
jp1[0]+=((i%12)+1)
jp1[1]+=((i%12)+1)
#用python的三元運算子新增是否爆點的字串
x1 = "(爆點)" if jp1[0]>21 else ""
x2 = "(爆點)" if jp1[1]>21 else ""
#如果有A則列印兩個點數,若沒有,列印一個
if flag1:
print("玩家1的點數為"+str(jp1[0])+"點"+x1+"或"+str(jp1[1])+"點"+x2)
else:
print("玩家1的點數為"+str(jp1[0])+"點"+x1)
#判斷玩家2是否含有A,若含有A則有兩種點數
for i in play2:
if i % 12 == 0:
jp2[0]+=1
jp2[1]+=11
flag2 = True
else:
jp2[0]+=((i%12)+1)
jp2[1]+=((i%12)+1)
#用python的三元運算子新增是否爆點的字串
y1 = "(爆點)" if jp2[0]>21 else ""
y2 = "(爆點)" if jp2[1]>21 else ""
#如果有A則列印兩個點數,若沒有,列印一個
if flag2:
print("玩家2的點數為"+str(jp2[0])+"點"+y1+"或"+str(jp2[1])+"點"+y2)
else:
print("玩家2的點數為"+str(jp2[0])+"點"+y1)
'''
init函式用於進行遊戲的邏輯判斷,是主方法
'''
def init():
#列印規則
print("-------遊戲規則-------")
print("---A可看做1點或11點---")
print("--------21點---------")
#列印當前玩家手牌資訊
printpai(play1, play2)
#遊戲進行,詢問玩家是否還要新增牌
flag1 = True
flag2 = True
index = 4
print("\n------------------")
while flag1:
iscon = input("\nplay1--是否還要牌(Y or N):")
if iscon == "Y" or iscon == "y":
play1.append(int(pailist[index]))
index += 1
printpai(play1,play2)
else:
printpai(play1,play2)
flag1 = False
print("\n----------------")
while flag2:
iscon = input("\nplay2--是否還要牌(Y or N):")
if iscon == "Y" or iscon == "y":
play2.append(int(pailist[index]))
index += 1
printpai(play1,play2)
else:
printpai(play1,play2)
flag2 = False
init()
#若init函式執行完畢,呼叫judge判斷最終結果
judge()
執行結果:
相關文章
- python手機版做小遊戲程式碼大全-python簡單小遊戲程式碼 怎麼用Python製作簡單小遊戲...Python遊戲
- 簡單塔防小遊戲遊戲
- numpy-random函式random函式
- JAVA中的Random()函式Javarandom函式
- 小程式的生命週期函式(簡單易懂)函式
- MATLAB 簡易版 你畫我猜小遊戲Matlab遊戲
- NIM遊戲/SG函式遊戲函式
- 【python小練習】簡單的猜數字遊戲Python遊戲
- Python隨機函式random使用詳解Python隨機函式random
- 快取函式的簡單使用快取函式
- postgresql中常用的函式:length、concat、as、substring、randomSQL函式random
- 簡單介紹JS函式防抖和函式節流JS函式
- c++簡易小遊戲C++遊戲
- 小遊戲陷版號恐慌遊戲
- 簡易版“推箱子”遊戲遊戲
- 簡單的檔案快取函式快取函式
- python 內建函式簡單總結Python函式
- 簡單探索Python中的filter函式PythonFilter函式
- 創意小遊戲名單遊戲
- 關於 Math.random 的一些函式random函式
- Random 函式在批次造資料中的運用random函式
- 函式極限與連續精簡版函式
- match函式簡單介紹以及與index函式結合應用函式Index
- 掃雷小遊戲-網頁版遊戲網頁
- JavaScript-開發一個簡單的貪吃蛇小遊戲JavaScript遊戲
- 簡單歡樂的依賴注入函式依賴注入函式
- 三角函式形成簡單的波浪函式
- 對高階函式的簡單認識函式
- python實現簡單猜單詞遊戲Python遊戲
- Hadoop--HDFS完全分散式(簡單版)Hadoop分散式
- 設計遊戲就是這麼簡單(一):最重要的兩點遊戲
- 遊戲小程式將成為遊戲公司新增長點遊戲
- python簡單遊戲-反彈球Python遊戲
- 『無為則無心』Python函式 — 28、Python函式的簡單應用Python函式
- 購物車【JavaWeb小專案簡單版】JavaWeb
- C語言實現的一個簡單的猜數小遊戲C語言遊戲
- 小說式解謎類遊戲:懸案疑雲A Case of Distrust Mac版遊戲RustMac
- 函式小結函式