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 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
|
||||
"""
|
||||
攻擊*7 防禦*7 治癒*7
|
||||
@ -188,11 +184,7 @@ def plan(wscur,wsene):
|
||||
))
|
||||
cur.planning = options
|
||||
cur.status = Room.PLAN
|
||||
"""while True:
|
||||
choice = input("選擇一張卡加入手牌 ")
|
||||
if choice in options:
|
||||
cur.add_card(choice)
|
||||
break"""
|
||||
|
||||
return r
|
||||
|
||||
def sweep(wscur,wsene):
|
||||
@ -280,7 +272,7 @@ def counter(wscur,wsene):
|
||||
def chaos(wscur,wsene):
|
||||
cur, ene = wscur.player, wsene.player
|
||||
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
|
||||
ene.life -= 3
|
||||
|
6
game.py
6
game.py
@ -57,12 +57,6 @@ class Player:
|
||||
# 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): # 抽卡
|
||||
if len(player.deck) == 0:
|
||||
player.life = -99999999 # 牌抽乾了就讓他死
|
||||
|
22
pyws.py
22
pyws.py
@ -10,14 +10,7 @@ from json import dumps, loads
|
||||
import ssl
|
||||
|
||||
connected = {-1: []}
|
||||
character = dict()
|
||||
name=["安","圭月","梅","小兔","銀","正作","W","桑德","海爾","雪村"]
|
||||
|
||||
for i in range(len(name)):
|
||||
character[str(i+1)] = name[i]
|
||||
|
||||
|
||||
sad = None
|
||||
fut = None
|
||||
wait_fut = [0, 0]
|
||||
async def wait(websocket, *cors, timeout=45, futs=None):
|
||||
@ -53,7 +46,7 @@ def random_room(room_list):
|
||||
|
||||
|
||||
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]
|
||||
#print("I'm here")
|
||||
@ -81,7 +74,6 @@ async def enter_room(websocket):
|
||||
|
||||
if count+1 == 1: # 該玩家已加入房間
|
||||
await websocket.send(str(room_id))
|
||||
sad = websocket
|
||||
else:
|
||||
players = connected[websocket.room].start()
|
||||
|
||||
@ -95,7 +87,7 @@ async def enter_room(websocket):
|
||||
for ws_list, message in Room.start_turn(*players):
|
||||
await sendTo(message, *ws_list)
|
||||
async def handler(websocket, path):
|
||||
global connected,sad, fut, wait_fut, rooms
|
||||
global connected, fut, wait_fut, rooms
|
||||
print("initialize")
|
||||
# Register.
|
||||
connected[-1].append(websocket)
|
||||
@ -125,8 +117,7 @@ async def handler(websocket, path):
|
||||
if websocket.status == Room.MATCHING:
|
||||
await enter_room(websocket)
|
||||
elif websocket.status == Room.WAITING:
|
||||
print("SAD", "FIRST" if websocket == sad else "SECOND")
|
||||
|
||||
|
||||
fut = asyncio.ensure_future(websocket.recv())
|
||||
|
||||
try:
|
||||
@ -146,18 +137,15 @@ async def handler(websocket, path):
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
|
||||
print("SADDDDDD", "FIRST" if websocket == sad else "SECOND")
|
||||
|
||||
|
||||
elif websocket.status == Room.PLAYING:
|
||||
|
||||
try:
|
||||
enemy = 0 if websocket == connected[websocket.room].players[1] else 1
|
||||
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]])
|
||||
print("received message", message)
|
||||
print("FIRST" if websocket == sad else "SECOND", ":", message)
|
||||
if message == "exception":
|
||||
break
|
||||
message_to_send = connected[websocket.room].process(websocket, message)
|
||||
@ -174,7 +162,7 @@ async def handler(websocket, path):
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
"""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
|
||||
p1, p2 = self.players[0].player, self.players[1].player
|
||||
ws_list = self.players[:]
|
||||
@ -142,13 +121,7 @@ class Room:
|
||||
message_to_send.append(( (wscur,), dumps({"msg": "win", "data": ["player"]})))
|
||||
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
|
||||
|
||||
def process(self, wscur, message): # cur is the person who send message to server
|
||||
@ -176,9 +149,6 @@ class Room:
|
||||
cur.status = self.NOTHING
|
||||
message_to_send.extend(Room.start_turn(wsene, wscur))
|
||||
|
||||
"""elif choice == "-1":
|
||||
cur.surrender()
|
||||
{}投降".format(cur.name)"""
|
||||
|
||||
elif cur.status == self.ROBBING:
|
||||
swag = choice
|
||||
|
Loading…
x
Reference in New Issue
Block a user