abandoned code deleted; bug fixed
This commit is contained in:
parent
ea6fe595f6
commit
a4684984ef
16
card.py
16
card.py
@ -3,13 +3,9 @@ import game
|
|||||||
from room import Room
|
from room import Room
|
||||||
from json import dumps
|
from json import dumps
|
||||||
|
|
||||||
|
unattackable = ['2','8','14']
|
||||||
|
unrobable = ['8','17']
|
||||||
|
|
||||||
cards = dict()
|
|
||||||
card_name = ["1.攻擊","2.防禦","3.治癒","4.補給","5.強奪","6.奇襲","7.交易","8.洞悉","9.妙策","10.掃射","11.加護","12.劇毒","13.詛咒","14.反制","15.狂亂","16.逆轉"]
|
|
||||||
unattackable = ['2','8','14','17','18']
|
|
||||||
unrobable = ['8','17','18']
|
|
||||||
for i in range(len(card_name)):
|
|
||||||
cards[str(i+1)] = card_name[i] # initialize cards
|
|
||||||
# create default deck
|
# create default deck
|
||||||
"""
|
"""
|
||||||
攻擊*7 防禦*7 治癒*7
|
攻擊*7 防禦*7 治癒*7
|
||||||
@ -188,11 +184,7 @@ def plan(wscur,wsene):
|
|||||||
))
|
))
|
||||||
cur.planning = options
|
cur.planning = options
|
||||||
cur.status = Room.PLAN
|
cur.status = Room.PLAN
|
||||||
"""while True:
|
|
||||||
choice = input("選擇一張卡加入手牌 ")
|
|
||||||
if choice in options:
|
|
||||||
cur.add_card(choice)
|
|
||||||
break"""
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def sweep(wscur,wsene):
|
def sweep(wscur,wsene):
|
||||||
@ -280,7 +272,7 @@ def counter(wscur,wsene):
|
|||||||
def chaos(wscur,wsene):
|
def chaos(wscur,wsene):
|
||||||
cur, ene = wscur.player, wsene.player
|
cur, ene = wscur.player, wsene.player
|
||||||
r = []
|
r = []
|
||||||
r.append(( (wsene,wscur), dumps({"msg": "reverse", "data": [cur.name, ene.name]})))
|
r.append(( (wsene,wscur), dumps({"msg": "chaos", "data": [cur.name, ene.name]})))
|
||||||
|
|
||||||
cur.life += 3
|
cur.life += 3
|
||||||
ene.life -= 3
|
ene.life -= 3
|
||||||
|
6
game.py
6
game.py
@ -57,12 +57,6 @@ class Player:
|
|||||||
# game functions
|
# game functions
|
||||||
|
|
||||||
|
|
||||||
def health(p1,p2):
|
|
||||||
return "{} 的生命: {}\n{} 的生命: {}".format(p1.name,p1.life, p2.name, p2.life)
|
|
||||||
|
|
||||||
def display(player):
|
|
||||||
return "這是 {} 的手牌\n{}".format(player.name, player.display)
|
|
||||||
|
|
||||||
def draw(player): # 抽卡
|
def draw(player): # 抽卡
|
||||||
if len(player.deck) == 0:
|
if len(player.deck) == 0:
|
||||||
player.life = -99999999 # 牌抽乾了就讓他死
|
player.life = -99999999 # 牌抽乾了就讓他死
|
||||||
|
22
pyws.py
22
pyws.py
@ -10,14 +10,7 @@ from json import dumps, loads
|
|||||||
import ssl
|
import ssl
|
||||||
|
|
||||||
connected = {-1: []}
|
connected = {-1: []}
|
||||||
character = dict()
|
|
||||||
name=["安","圭月","梅","小兔","銀","正作","W","桑德","海爾","雪村"]
|
|
||||||
|
|
||||||
for i in range(len(name)):
|
|
||||||
character[str(i+1)] = name[i]
|
|
||||||
|
|
||||||
|
|
||||||
sad = None
|
|
||||||
fut = None
|
fut = None
|
||||||
wait_fut = [0, 0]
|
wait_fut = [0, 0]
|
||||||
async def wait(websocket, *cors, timeout=45, futs=None):
|
async def wait(websocket, *cors, timeout=45, futs=None):
|
||||||
@ -53,7 +46,7 @@ def random_room(room_list):
|
|||||||
|
|
||||||
|
|
||||||
async def enter_room(websocket):
|
async def enter_room(websocket):
|
||||||
global connected ,sad, fut
|
global connected, fut
|
||||||
|
|
||||||
room_list = [room_id for room_id in connected if len(connected[room_id])<2 and room_id != -1]
|
room_list = [room_id for room_id in connected if len(connected[room_id])<2 and room_id != -1]
|
||||||
#print("I'm here")
|
#print("I'm here")
|
||||||
@ -81,7 +74,6 @@ async def enter_room(websocket):
|
|||||||
|
|
||||||
if count+1 == 1: # 該玩家已加入房間
|
if count+1 == 1: # 該玩家已加入房間
|
||||||
await websocket.send(str(room_id))
|
await websocket.send(str(room_id))
|
||||||
sad = websocket
|
|
||||||
else:
|
else:
|
||||||
players = connected[websocket.room].start()
|
players = connected[websocket.room].start()
|
||||||
|
|
||||||
@ -95,7 +87,7 @@ async def enter_room(websocket):
|
|||||||
for ws_list, message in Room.start_turn(*players):
|
for ws_list, message in Room.start_turn(*players):
|
||||||
await sendTo(message, *ws_list)
|
await sendTo(message, *ws_list)
|
||||||
async def handler(websocket, path):
|
async def handler(websocket, path):
|
||||||
global connected,sad, fut, wait_fut, rooms
|
global connected, fut, wait_fut, rooms
|
||||||
print("initialize")
|
print("initialize")
|
||||||
# Register.
|
# Register.
|
||||||
connected[-1].append(websocket)
|
connected[-1].append(websocket)
|
||||||
@ -125,8 +117,7 @@ async def handler(websocket, path):
|
|||||||
if websocket.status == Room.MATCHING:
|
if websocket.status == Room.MATCHING:
|
||||||
await enter_room(websocket)
|
await enter_room(websocket)
|
||||||
elif websocket.status == Room.WAITING:
|
elif websocket.status == Room.WAITING:
|
||||||
print("SAD", "FIRST" if websocket == sad else "SECOND")
|
|
||||||
|
|
||||||
fut = asyncio.ensure_future(websocket.recv())
|
fut = asyncio.ensure_future(websocket.recv())
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -146,18 +137,15 @@ async def handler(websocket, path):
|
|||||||
except asyncio.CancelledError:
|
except asyncio.CancelledError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
print("SADDDDDD", "FIRST" if websocket == sad else "SECOND")
|
|
||||||
|
|
||||||
elif websocket.status == Room.PLAYING:
|
elif websocket.status == Room.PLAYING:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
enemy = 0 if websocket == connected[websocket.room].players[1] else 1
|
enemy = 0 if websocket == connected[websocket.room].players[1] else 1
|
||||||
wait_fut[(enemy+1)%2] = asyncio.ensure_future(websocket.recv())
|
wait_fut[(enemy+1)%2] = asyncio.ensure_future(websocket.recv())
|
||||||
|
|
||||||
print("wait for", "FIRST" if websocket == sad else "SECOND")
|
|
||||||
message = await wait(websocket, timeout=30, futs=[wait_fut[(enemy+1)%2]])
|
message = await wait(websocket, timeout=30, futs=[wait_fut[(enemy+1)%2]])
|
||||||
print("received message", message)
|
print("received message", message)
|
||||||
print("FIRST" if websocket == sad else "SECOND", ":", message)
|
|
||||||
if message == "exception":
|
if message == "exception":
|
||||||
break
|
break
|
||||||
message_to_send = connected[websocket.room].process(websocket, message)
|
message_to_send = connected[websocket.room].process(websocket, message)
|
||||||
@ -174,7 +162,7 @@ async def handler(websocket, path):
|
|||||||
|
|
||||||
|
|
||||||
except asyncio.CancelledError:
|
except asyncio.CancelledError:
|
||||||
print("FIRST" if websocket == sad else "SECOND", "was Canceled\n\n")
|
print("Canceled\n\n")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
32
room.py
32
room.py
@ -47,27 +47,6 @@ class Room:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""async def start(self):
|
|
||||||
p1, p2 = self.players[0].player, self.players[1].player
|
|
||||||
first = random.choice([p1, p2])
|
|
||||||
print(first, p1, p2)
|
|
||||||
first.playing = True # so the first one will be random
|
|
||||||
await sendTo(first.name + "先攻", *self.players)
|
|
||||||
print(first.name,"先攻")
|
|
||||||
print() # change line
|
|
||||||
for _ in range(3): # 初始手牌*3
|
|
||||||
game.draw(p1)
|
|
||||||
game.draw(p2)
|
|
||||||
|
|
||||||
while p1.life > 0 and p2.life > 0:
|
|
||||||
print("game.turn start")
|
|
||||||
await game.turn(self.players[0], self.players[1])
|
|
||||||
print("game.turn end")
|
|
||||||
if p1.life <= 0:
|
|
||||||
print("{} 獲勝".format(p2.name))
|
|
||||||
elif p2.life <= 0:
|
|
||||||
print("{} 獲勝".format(p1.name))"""
|
|
||||||
def start(self): # initialize the game
|
def start(self): # initialize the game
|
||||||
p1, p2 = self.players[0].player, self.players[1].player
|
p1, p2 = self.players[0].player, self.players[1].player
|
||||||
ws_list = self.players[:]
|
ws_list = self.players[:]
|
||||||
@ -142,13 +121,7 @@ class Room:
|
|||||||
message_to_send.append(( (wscur,), dumps({"msg": "win", "data": ["player"]})))
|
message_to_send.append(( (wscur,), dumps({"msg": "win", "data": ["player"]})))
|
||||||
message_to_send.append(( (wsene,), dumps({"msg": "win", "data": ["enemy"]})))
|
message_to_send.append(( (wsene,), dumps({"msg": "win", "data": ["enemy"]})))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#await sendTo(health(p1,p2), wsp1, wsp2)
|
|
||||||
#await sendTo(draw(cur), wsp1, wsp2) # 抽卡
|
|
||||||
#message_to_send.append(( (wscur,), game.display(cur))) # 顯示手牌
|
|
||||||
#message_to_send.append(( (wscur,), "請問要使用手牌嗎? 若不使用請輸入0"))
|
|
||||||
return message_to_send
|
return message_to_send
|
||||||
|
|
||||||
def process(self, wscur, message): # cur is the person who send message to server
|
def process(self, wscur, message): # cur is the person who send message to server
|
||||||
@ -176,9 +149,6 @@ class Room:
|
|||||||
cur.status = self.NOTHING
|
cur.status = self.NOTHING
|
||||||
message_to_send.extend(Room.start_turn(wsene, wscur))
|
message_to_send.extend(Room.start_turn(wsene, wscur))
|
||||||
|
|
||||||
"""elif choice == "-1":
|
|
||||||
cur.surrender()
|
|
||||||
{}投降".format(cur.name)"""
|
|
||||||
|
|
||||||
elif cur.status == self.ROBBING:
|
elif cur.status == self.ROBBING:
|
||||||
swag = choice
|
swag = choice
|
||||||
|
Loading…
x
Reference in New Issue
Block a user