add movement request
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/09/13 16:20:58 by tomoron #+# #+# #
|
# Created: 2024/09/13 16:20:58 by tomoron #+# #+# #
|
||||||
# Updated: 2024/09/15 14:44:14 by edbernar ### ########.fr #
|
# Updated: 2024/09/16 14:03:03 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -91,6 +91,10 @@ class Game:
|
|||||||
self.p1.sync_send(data_raw)
|
self.p1.sync_send(data_raw)
|
||||||
self.p2.sync_send(data_raw)
|
self.p2.sync_send(data_raw)
|
||||||
|
|
||||||
|
def move(self, socket, pos, up):
|
||||||
|
opponent = p1 if socket != p1 else p2
|
||||||
|
opponent.sync_send({"type":"game","content":{"action":3, "pos":pos, "up":up}})
|
||||||
|
|
||||||
async def gameLoop(self):
|
async def gameLoop(self):
|
||||||
self.started = True
|
self.started = True
|
||||||
self.sendPlayers({"action":2})
|
self.sendPlayers({"action":2})
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/08/09 08:08:00 by edbernar #+# #+# #
|
# Created: 2024/08/09 08:08:00 by edbernar #+# #+# #
|
||||||
# Updated: 2024/09/14 18:55:01 by tomoron ### ########.fr #
|
# Updated: 2024/09/16 13:39:22 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -24,6 +24,7 @@ import hashlib
|
|||||||
|
|
||||||
mail_pattern = "^((?!\\.)[\\w\\-_.]*[^.])(@\\w+)(\\.\\w+(\\.\\w+)?[^.\\W])$"
|
mail_pattern = "^((?!\\.)[\\w\\-_.]*[^.])(@\\w+)(\\.\\w+(\\.\\w+)?[^.\\W])$"
|
||||||
password_pattern = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$"
|
password_pattern = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$"
|
||||||
|
allowed_char_username = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
|
||||||
URLMAIL = SERVER_URL + "/verify?token="
|
URLMAIL = SERVER_URL + "/verify?token="
|
||||||
|
|
||||||
@sync_to_async
|
@sync_to_async
|
||||||
@ -45,7 +46,7 @@ def createAccount(socket, content):
|
|||||||
if (len(content["username"]) > 20):
|
if (len(content["username"]) > 20):
|
||||||
socket.sendError("Username must be at most 20 characters long", 9017)
|
socket.sendError("Username must be at most 20 characters long", 9017)
|
||||||
return
|
return
|
||||||
if (content["username"].isalnum() == False):
|
if (not all(c in allowed_char_username for c in content["username"])):
|
||||||
socket.sendError("Username must contain only letters and numbers", 9018)
|
socket.sendError("Username must contain only letters and numbers", 9018)
|
||||||
return
|
return
|
||||||
if (len(content["password"]) < 8):
|
if (len(content["password"]) < 8):
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# move.py :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2024/09/16 13:54:55 by tomoron #+# #+# #
|
||||||
|
# Updated: 2024/09/16 14:03:09 by tomoron ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
def move(socket, content):
|
||||||
|
up = content.get("up", False)
|
||||||
|
pos = content.get("pos", None)
|
||||||
|
if(pos == None):
|
||||||
|
return;
|
||||||
|
socket.game.move(socket, up, pos)
|
@ -6,13 +6,14 @@
|
|||||||
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
|
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/09/09 16:10:26 by tomoron #+# #+# #
|
# Created: 2024/09/09 16:10:26 by tomoron #+# #+# #
|
||||||
# Updated: 2024/09/15 13:38:55 by tomoron ### ########.fr #
|
# Updated: 2024/09/16 13:59:24 by tomoron ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
from .gameActions.start import start
|
from .gameActions.start import start
|
||||||
from .gameActions.ready import ready
|
from .gameActions.ready import ready
|
||||||
from .gameActions.leave import leave
|
from .gameActions.leave import leave
|
||||||
|
from .gameActions.move import move
|
||||||
|
|
||||||
# game request format : {"type":"game", "content":{"action": 1, ...}}
|
# game request format : {"type":"game", "content":{"action": 1, ...}}
|
||||||
|
|
||||||
@ -24,6 +25,11 @@ from .gameActions.leave import leave
|
|||||||
# - username
|
# - username
|
||||||
#
|
#
|
||||||
# 2 : go : the game started
|
# 2 : go : the game started
|
||||||
|
#
|
||||||
|
# 3 : move : when the oponnent moves or the client did an illegal move
|
||||||
|
# - is_opponent
|
||||||
|
# - pos
|
||||||
|
# - up
|
||||||
|
|
||||||
#client actions (actions sent by the client) :
|
#client actions (actions sent by the client) :
|
||||||
# 0 : start : starts a game
|
# 0 : start : starts a game
|
||||||
@ -32,8 +38,12 @@ from .gameActions.leave import leave
|
|||||||
# 1 : ready : tell the server the game is ready to start
|
# 1 : ready : tell the server the game is ready to start
|
||||||
#
|
#
|
||||||
# 2 : leave : leave the game (or waiting screen)
|
# 2 : leave : leave the game (or waiting screen)
|
||||||
|
#
|
||||||
|
# 3 : move : when the client moves
|
||||||
|
# - pos :
|
||||||
|
# - up : True/False(default : False) is the player up
|
||||||
|
|
||||||
action_list = [start, ready, leave]
|
action_list = [start, ready, leave, move]
|
||||||
async def gameRequest(socket, content):
|
async def gameRequest(socket, content):
|
||||||
action = content["action"]
|
action = content["action"]
|
||||||
if(action < 0 or action > len(action_list)):
|
if(action < 0 or action > len(action_list)):
|
||||||
|
Reference in New Issue
Block a user