Skip to content

Update app.py#43

Open
tuananh1807 wants to merge 1 commit into
railwayapp-templates:mainfrom
tuananh1807:patch-3
Open

Update app.py#43
tuananh1807 wants to merge 1 commit into
railwayapp-templates:mainfrom
tuananh1807:patch-3

Conversation

@tuananh1807

Copy link
Copy Markdown

from flask import Flask, render_template, request, redirect, url_for, jsonify
import sqlite3

app = Flask(name)

Kết nối SQLite

def get_db_connection():
conn = sqlite3.connect('db.sqlite3')
conn.row_factory = sqlite3.Row
return conn

Tạo bảng người chơi nếu chưa có

def init_db():
conn = get_db_connection()
conn.execute('''
CREATE TABLE IF NOT EXISTS players (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE NOT NULL,
score INTEGER NOT NULL DEFAULT 0
)
''')
conn.commit()
conn.close()

init_db()

Trang chính

@app.route('/')
def index():
return render_template('index.html')

Chế độ đấu 2 người

@app.route('/player-vs-player')
def player_vs_player():
return render_template('player_vs_player.html')

Chế độ đấu với máy

@app.route('/player-vs-ai', methods=['GET', 'POST'])
def player_vs_ai():
if request.method == 'POST':
name = request.form.get('name')
if not name:
return redirect(url_for('player_vs_ai'))

    conn = get_db_connection()
    player = conn.execute('SELECT * FROM players WHERE name = ?', (name,)).fetchone()
    
    if player:
        return render_template('player_vs_ai.html', name=player['name'], score=player['score'])
    else:
        conn.execute('INSERT INTO players (name, score) VALUES (?, ?)', (name, 0))
        conn.commit()
        return render_template('player_vs_ai.html', name=name, score=0)
return render_template('enter_name.html')

Cập nhật điểm người chơi sau khi thắng

@app.route('/update_score', methods=['POST'])
def update_score():
name = request.json.get('name')
conn = get_db_connection()
conn.execute('UPDATE players SET score = score + 1 WHERE name = ?', (name,))
conn.commit()
conn.close()
return jsonify(success=True)

Bảng xếp hạng

@app.route('/leaderboard')
def leaderboard():
conn = get_db_connection()
players = conn.execute('SELECT * FROM players ORDER BY score DESC LIMIT 10').fetchall()
conn.close()
return render_template('leaderboard.html', players=players)

if name == 'main':
app.run(debug=True)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant