from flask import Flask, request, jsonify import random import string from flask_cors import CORS app = Flask(__name__) CORS(app) # Store room information in memory (replace with a database in production). rooms = {} started_rooms = {} def generate_room_code(): # Generate a random 6-character room code. return ''.join(random.choices(string.ascii_uppercase, k=6)) @app.route('/create-room', methods=['POST']) def create_room(): room_code = generate_room_code() rooms[room_code] = {'players': [], 'started': False} player_name = request.json.get('name') if not player_name: return jsonify({'error': 'Player name is required'}) # Add the player to the room. player_id = len(rooms[room_code]['players']) + 1 rooms[room_code]['players'].append({'id': player_id, 'name': player_name}) return jsonify({'room_code': room_code}) @app.route('/join-room/', methods=['POST', 'GET']) def join_room(room_code): if request.method == 'POST': if room_code not in rooms: return jsonify({'error': 'Room not found'}), 404 if len(rooms[room_code]['players']) >= 2: return jsonify({'error': 'Room is full'}) player_name = request.json.get('name') if not player_name: return jsonify({'error': 'Player name is required'}) # Add the player to the room. player_id = len(rooms[room_code]['players']) + 1 rooms[room_code]['players'].append({'id': player_id, 'name': player_name}) return jsonify({'player_id': player_id, 'players': rooms[room_code]['players']}) if request.method == 'GET': if room_code not in rooms: return jsonify({'error': 'Room not found'}), 404 ready = False if len(rooms[room_code]['players']) == 2: ready = True return jsonify({'players': rooms[room_code]['players'], 'ready': ready, 'started': rooms[room_code]['started']}) @app.route('/start-room/', methods=['POST']) def start_room(room_code): if room_code not in rooms: return jsonify({'error': 'Room not found'}), 404 rooms[room_code]['started'] = True return jsonify({'success': True}) @app.route('/leave-room//', methods=['POST']) def leave_room(room_code, player_id): if room_code not in rooms: return jsonify({'error': 'Room not found'}), 404 rooms[room_code]['players'] = [player for player in rooms[room_code]['players'] if player['id'] != player_id] if not rooms[room_code]['players']: del rooms[room_code] return jsonify({'message': 'Player has left the room'}) if __name__ == '__main__': app.run(debug=True)