示例#1
0
文件: room.py 项目: xumaple/shengji
def ready(room):
    print('hi')
    user = flask.session.get('user')
    if user is None:
        user = secrets.token_hex(8)
        print('user was none')
        flask.session['user'] = user

    db.child('games').child(room).child('players').child(user).child(
        'ready').set(True)

    players = db.child('games').child(room).child(
        'players').shallow().get().val()
    if len(players) >= 4:
        all_ready = True
        for key in players:
            if not db.child('games').child(room).child('players').child(
                    key).child('ready').get().val():
                all_ready = False
                break
        if all_ready:
            initialize_game()

    context = {}
    return flask.jsonify(**context)
示例#2
0
def call_trump(room):
    curr = time.time()
    db.child('games').child(room).child('trump').child(curr).set({
        'player': 0,
        'card': 1,
        'quantity': 1
    })
    pass
示例#3
0
文件: room.py 项目: xumaple/shengji
def heart(room):
    user = flask.session.get('user')
    if user is None:
        user = secrets.token_hex(8)
        print('user was none')
        flask.session['user'] = user
    curr = int(time.time())
    print('heart', user, curr)

    if db.child('games').child(room).child('players').child(
            user).get().val() is None:
        context = {'disconnected': True}
        return flask.jsonify(**context)

    players = list(
        db.child('games').child(room).child('players').shallow().get().val())
    heartbeats = db.child('heartbeats')
    heartbeats.child(user).set(curr)
    for key in players:
        if key != user:
            t = db.child('heartbeats').child(key).get().val()
            if t is not None and curr - t > NUM_HEARTS:
                print(key, 'disconnected', curr, t)
                game_state = db.child('games').child(room).child(
                    'state').get().val()
                if game_state == 'waiting':
                    db.child('heartbeats').child(key).remove()
                    db.child('games').child(room).child('players').child(
                        key).remove()

    context = {}
    return flask.jsonify(**context)
示例#4
0
文件: room.py 项目: xumaple/shengji
def leave(room):
    print('tears')
    user = flask.session.get('user')
    if user is None:
        user = secrets.token_hex(8)
        print('user was none')
        flask.session['user'] = user

    db.child('games').child(room).child('players').child(user).remove()

    context = {}
    return flask.jsonify(**context)
示例#5
0
文件: room.py 项目: xumaple/shengji
def not_ready(room):
    print('bye')
    user = flask.session.get('user')
    if user is None:
        user = secrets.token_hex(8)
        print('user was none')
        flask.session['user'] = user

    db.child('games').child(room).child('players').child(user).child(
        'ready').set(False)

    context = {}
    return flask.jsonify(**context)
示例#6
0
文件: index.py 项目: xumaple/shengji
def display():
    # user = firebase.auth().currentUser;
    user = flask.session.get('user')
    if user is None:
        user = secrets.token_hex(8)
        print('user was none')
        flask.session['user'] = user

    if db.child('games').child(room).child('players').child(
            user).get().val() is None:
        curr = time.time()
        db.child('games').child(room).child('players').child(user).set({
            'entry':
            curr,
            'ready':
            False
        })
        db.child('heartbeats').child(user).set(curr)
    context = {
        'jsfile': 'room_bundle.js',
        'user': user,
    }
    return flask.render_template("base.html", **context)
示例#7
0
def initialize_game():
    db.child('games').child(room).child('state').set('playing')