Spaces:
Paused
Paused
File size: 2,945 Bytes
7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 94bfcb7 ce1dd56 94bfcb7 ce1dd56 7ef7190 ce1dd56 94bfcb7 7ef7190 94bfcb7 ce1dd56 94bfcb7 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 ce1dd56 7ef7190 94bfcb7 7ef7190 ce1dd56 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import random
import string
from flask import Flask, request, jsonify, render_template
import time
from threading import Timer
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key' # Replace with a real secret key
# In-memory storage for game sessions and player data
sessions = {}
waiting_session = None
def generate_session_id():
return ''.join(random.choices(string.digits, k=4))
def generate_player_id():
return ''.join(random.choices(string.ascii_uppercase + string.digits, k=6))
def create_game_session():
global waiting_session
session_id = generate_session_id()
while session_id in sessions:
session_id = generate_session_id()
sessions[session_id] = {
'players': [],
'words': {},
'current_player': None,
'guesses': set(),
'incorrect_guesses': 0,
'last_activity': time.time()
}
waiting_session = session_id
return session_id
def join_game_session():
global waiting_session
if waiting_session and waiting_session in sessions:
session_id = waiting_session
is_new_session = False
else:
session_id = create_game_session()
is_new_session = True
player_id = generate_player_id()
sessions[session_id]['players'].append(player_id)
sessions[session_id]['last_activity'] = time.time()
if len(sessions[session_id]['players']) == 2:
waiting_session = None
return session_id, player_id, is_new_session
@app.route('/')
def index():
return render_template('index.html')
@app.route('/play', methods=['POST'])
def play():
session_id, player_id, is_new_session = join_game_session()
status = 'waiting' if is_new_session else 'ready'
return jsonify({
'session_id': session_id,
'player_id': player_id,
'status': status
})
@app.route('/check_status/<session_id>', methods=['GET'])
def check_status(session_id):
if session_id in sessions:
status = 'ready' if len(sessions[session_id]['players']) == 2 else 'waiting'
return jsonify({'status': status})
return jsonify({'error': 'Session not found'}), 404
@app.route('/submit_word', methods=['POST'])
def submit_word():
data = request.json
session_id = data['session_id']
player_id = data['player_id']
word = data['word'].lower()
if len(word) != 7:
return jsonify({'error': 'Word must be 7 letters long'}), 400
sessions[session_id]['words'][player_id] = word
sessions[session_id]['last_activity'] = time.time()
if len(sessions[session_id]['words']) == 2:
sessions[session_id]['current_player'] = sessions[session_id]['players'][0]
return jsonify({'status': 'game_started'})
return jsonify({'status': 'waiting_for_opponent'})
# ... (rest of the code remains the same)
if __name__ == '__main__':
cleanup_inactive_sessions()
app.run(host='0.0.0.0', port=7860) |