这是用Python做的一个三国卡牌游戏
我大约做了1个小时
希望能火
不求点赞和收藏
#导库
from tkinter import*
from time import*
from sys import*
from random import*
from xes import*
from tkinter import messagebox
import urllib.request
import requests
import json
#定义游戏
def 三国杀():
root.destroy()
sleep(1)
clear()
pai = ["桃","酒","杀","闪","万箭齐发","南蛮入侵","顺手牵羊","过河拆桥","釜底抽薪","无中生有","无懈可击","火杀","雷杀"]
wopai = []
dipai = []
wokill = 1
dikill = 1
woxue = 3
dixue = 3
print("欢迎进入三国杀游戏!")
print("开局随机抽牌4张")
print("正在抽取己方卡牌")
for i in range(4):
aa = choice(pai)
wopai.append(aa)
sleep(0.5)
print("正在抽取敌方卡牌")
for i in range(4):
bb = choice(pai)
dipai.append(bb)
sleep(0.5)
print("抽牌完成!")
while True:
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
print("我方回合")
k = ""
while k != "结束":
clear()
print("我方血量:",woxue,"敌方血量:",dixue)
print("我方回合")
print("我方所拥有的牌:")
for i in wopai:
print(i)
k = input("请输入你想出的牌,输入“结束”以结束出牌")
if k == "结束":
break
if k in wopai:
if k == "杀":
if "闪" in dipai:
input("敌方使用了闪,你的杀失效了!按下回车以进入下一轮出牌")
dipai.remove("闪")
else:
dixue -= 1
input("出牌成功!敌方血量减少1点,按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "火杀" or k == "雷杀":
if "闪" in dipai:
input("敌方使用了闪,你的杀失效了!按下回车以进入下一轮出牌")
dipai.remove("闪")
else:
dixue -= 2
input("出牌成功!敌方血量减少2点,按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "无中生有":
if "无懈可击" in dipai:
dipai.remove("无懈可击")
input("敌方使用了无懈可击,你的牌失效了!按下回车以进入下一轮出牌")
else:
for i in range(2):
g = choice(pai)
wopai.append(g)
sleep(0.25)
input("抽牌成功!按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "桃":
if "无懈可击" in dipai:
dipai.remove("无懈可击")
input("敌方使用了无懈可击,你的牌失效了!按下回车以进入下一轮出牌")
elif woxue == 3:
input("我方血量已达上限!按下回车以进入下一轮出牌")
else:
woxue += 1
sleep(0.25)
input("回血成功!按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "酒":
if "无懈可击" in dipai:
dipai.remove("无懈可击")
input("敌方使用了无懈可击,你的牌失效了!按下回车以进入下一轮出牌")
else:
wokill += 1
sleep(0.25)
input("使用成功!我方攻击加1!按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "南蛮入侵":
if "杀" in dipai:
dipai.remove("杀")
input("敌方使用了杀,你的牌失效了!按下回车以进入下一轮出牌")
else:
dixue -= wokill
sleep(0.25)
input("使用成功!敌方血量减一!按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "顺手牵羊":
if len(dipai) > 0:
if "无懈可击" in dipai:
dipai.remove("无懈可击")
input("敌方使用了无懈可击,你的牌失效了!按下回车以进入下一轮出牌")
else:
for i in range(len(dipai)):
print(i + 1)
u = int(input("请输入你想抽的牌序号:"))
er = dipai[u - 1]
dipai.remove(er)
wopai.append(er)
print("你抽了敌方的",er)
input("抽牌成功!按下回车以进入下一轮出牌")
wopai.remove(k)
else:
input("敌方已无手牌,按下回车以进入下一轮出牌")
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "过河拆桥" or k == "釜底抽薪":
if "无懈可击" in dipai:
dipai.remove("无懈可击")
input("敌方使用了无懈可击,你的牌失效了!按下回车以进入下一轮出牌")
else:
for i in range(len(dipai)):
print(i + 1)
u = int(input("请输入你想废掉的牌序号:"))
er = dipai[u - 1]
dipai.remove(er)
print("你废了敌方的",er)
input("废牌成功!按下回车以进入下一轮出牌")
wopai.remove(k)
if woxue == 0:
print("敌方获胜!")
break
if dixue == 0:
print("我方获胜!")
break
if k == "万箭齐发":