from flask import Flask, render_template_string, request, jsonify, session import random import time from datetime import datetime app = Flask(__name__) app.secret_key = 'roulette_secret_key_2024' class RouletteGame: def __init__(self): self.numbers = list(range(0, 37)) self.reds = [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36] self.blacks = [2,4,6,8,10,11,13,15,17,20,22,24,26,28,29,31,33,35] self.wheel_order = [0, 32, 15, 19, 4, 21, 2, 25, 17, 34, 6, 27, 13, 36, 11, 30, 8, 23, 10, 5, 24, 16, 33, 1, 20, 14, 31, 9, 22, 18, 29, 7, 28, 12, 35, 3, 26] def spin(self): return random.choice(self.numbers) def check_win(self, number, bet_type, bet_value): if bet_type == 'number': return number == int(bet_value) elif bet_type == 'color': if bet_value == 'red': return number in self.reds elif bet_value == 'black': return number in self.blacks elif bet_type == 'even_odd': if number == 0: return False if bet_value == 'even': return number % 2 == 0 elif bet_value == 'odd': return number % 2 == 1 elif bet_type == 'dozen': if bet_value == 'first': return 1 <= number <= 12 elif bet_value == 'second': return 13 <= number <= 24 elif bet_value == 'third': return 25 <= number <= 36 elif bet_type == 'column': col = int(bet_value) return number != 0 and (number % 3 == col) elif bet_type == 'half': if bet_value == '1-18': return 1 <= number <= 18 elif bet_value == '19-36': return 19 <= number <= 36 return False def get_payout_multiplier(self, bet_type): multipliers = { 'number': 35, 'color': 2, 'even_odd': 2, 'dozen': 3, 'column': 3, 'half': 2 } return multipliers.get(bet_type, 1) def init_session(): """Инициализация сессии""" if 'balance' not in session: session['balance'] = 1000 session['history'] = [] session['total_games'] = 0 session['total_wins'] = 0 session.modified = True HTML_TEMPLATE = ''' Казино Рулетка

🎰 КАЗИНО РУЛЕТКА 🎰

Испытайте удачу в классической европейской рулетке

Баланс
1000
Последний выигрыш
0
Всего игр
0

Колесо Рулетки

Выпало: -

Игровой стол

Красное (x2)
Черное (x2)
Четное (x2)
Нечетное (x2)
1-12 (x3)
13-24 (x3)
25-36 (x3)
1-18 (x2)
19-36 (x2)
1-я колонка (x3)
2-я колонка (x3)
3-я колонка (x3)
Баланс: 1000
Ставка: Не выбрана
Сделайте ставку и нажмите "Крутить"

История игр

''' game = RouletteGame() @app.route('/') def index(): # Initialize session init_session() return render_template_string(HTML_TEMPLATE) @app.route('/spin', methods=['POST']) def spin(): # Ensure session is initialized init_session() data = request.json bet_type = data['betType'] bet_value = data['betValue'] bet_amount = float(data['betAmount']) # Check if player has enough balance if bet_amount > session['balance']: return jsonify({'error': 'Недостаточно средств'}), 400 # Deduct bet amount session['balance'] -= bet_amount session['total_games'] = session.get('total_games', 0) + 1 # Spin the wheel winning_number = game.spin() win = game.check_win(winning_number, bet_type, bet_value) # Calculate payout payout = 0 if win: multiplier = game.get_payout_multiplier(bet_type) payout = bet_amount * multiplier session['balance'] += payout session['total_wins'] = session.get('total_wins', 0) + 1 # Add to history history_item = { 'number': winning_number, 'bet_type': bet_type, 'bet_value': bet_value, 'amount': bet_amount, 'payout': payout, 'won': win, 'timestamp': datetime.now().strftime('%H:%M:%S') } session['history'] = session.get('history', []) session['history'].insert(0, history_item) if len(session['history']) > 10: session['history'] = session['history'][:10] session.modified = True return jsonify({ 'winningNumber': winning_number, 'win': win, 'payout': payout, 'color': 'red' if winning_number in game.reds else 'black', 'newBalance': session['balance'] }) @app.route('/reset', methods=['POST']) def reset(): session['balance'] = 1000 session['history'] = [] session['total_games'] = 0 session['total_wins'] = 0 session.modified = True return jsonify({'message': 'Игра сброшена', 'balance': session['balance']}) @app.before_request def before_request(): """Ensure session is initialized before each request""" init_session() if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=7860)