refractor + some doc
This commit is contained in:
		
							parent
							
								
									d74f304330
								
							
						
					
					
						commit
						e2301ec1e7
					
				@ -1,23 +1,58 @@
 | 
			
		||||
import string
 | 
			
		||||
import random
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Map of all actively running games
 | 
			
		||||
# game_lists["game.id"]-> game info linked to that id
 | 
			
		||||
game_lists = {}
 | 
			
		||||
 | 
			
		||||
def random_string(length):
 | 
			
		||||
def random_string(length: int) ->str:
 | 
			
		||||
    """
 | 
			
		||||
    This function create a random string as long as the lint passed as 
 | 
			
		||||
    parameter
 | 
			
		||||
    
 | 
			
		||||
    : param length: the lenght of the random string
 | 
			
		||||
    : type length : int
 | 
			
		||||
    : return      : a random string
 | 
			
		||||
    : return type : string
 | 
			
		||||
    """
 | 
			
		||||
    return "".join(random.choice(string.ascii_letters) for _ in range(length))
 | 
			
		||||
 | 
			
		||||
class GameInfo:
 | 
			
		||||
    """
 | 
			
		||||
    The game info class stores all information linked to a active game
 | 
			
		||||
 | 
			
		||||
    Game.start_token : str, 
 | 
			
		||||
    Game.id : str, the game identifier of the game
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        self.start_token = None
 | 
			
		||||
 | 
			
		||||
def create_game():
 | 
			
		||||
    """
 | 
			
		||||
    This function creates a new game by creating a GameInfo object and stores 
 | 
			
		||||
    it into the game_lists dictionnary
 | 
			
		||||
 | 
			
		||||
    : return      : a new GameInfo
 | 
			
		||||
    : return type : GameInfo
 | 
			
		||||
    """
 | 
			
		||||
    game = GameInfo()
 | 
			
		||||
    game.id = random_string(6)
 | 
			
		||||
    game.start_token = random_string(64)
 | 
			
		||||
    game_lists[game.id] = game
 | 
			
		||||
    #TODO ADD A WEBSOCKET IF THE GAME IS KNOWN TO BE MULTIPLAYER
 | 
			
		||||
    return game
 | 
			
		||||
 | 
			
		||||
def get_game_info(game_id):
 | 
			
		||||
    """
 | 
			
		||||
    This function retrieve a the GameInfo object linked to the game_id
 | 
			
		||||
    passed as parametter
 | 
			
		||||
 | 
			
		||||
    : param game_id : the lenght of the random string
 | 
			
		||||
    : type game_id  : str
 | 
			
		||||
    : return        : The GameInfo Object linked to the gameId
 | 
			
		||||
    : return type   : GameInfo
 | 
			
		||||
    """
 | 
			
		||||
    if game_id in game_lists:
 | 
			
		||||
        return game_lists[game_id]
 | 
			
		||||
    else:
 | 
			
		||||
 | 
			
		||||
@ -6,16 +6,25 @@ api_routes = flask.Blueprint("api", __name__)
 | 
			
		||||
 | 
			
		||||
@api_routes.route("/createGame")
 | 
			
		||||
def create_game():
 | 
			
		||||
    return "Created game {}".format(game_api.create_game().id)
 | 
			
		||||
    response = {}
 | 
			
		||||
    response["status"] = "ok"
 | 
			
		||||
    response["gameId"] = game_api.create_game().id
 | 
			
		||||
    return response
 | 
			
		||||
    
 | 
			
		||||
@api_routes.route("/getGameInfo")
 | 
			
		||||
def get_game_info():
 | 
			
		||||
    response = {}
 | 
			
		||||
    gameid = flask.request.args.get("gameid")
 | 
			
		||||
    if gameid == None:
 | 
			
		||||
        return "No 'gameid' argument"
 | 
			
		||||
        response["status"] = "No 'gameid' argument"
 | 
			
		||||
        return response 
 | 
			
		||||
    game = game_api.get_game_info(gameid)
 | 
			
		||||
    if game == None:
 | 
			
		||||
        return "Game {} does not exist".format(gameid)
 | 
			
		||||
        response["status"] = "Game {} does not exist".format(gameid)
 | 
			
		||||
        return response 
 | 
			
		||||
    else:
 | 
			
		||||
        return "Game {} start token : {}".format(gameid, game.start_token)
 | 
			
		||||
        response["status"] = "ok"
 | 
			
		||||
        response["gameid"] = gameid
 | 
			
		||||
        response["token"] = game.start_token
 | 
			
		||||
        return response
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user