Exemple #1
0
    def get_level_prototype(self, level_key: str) -> Level:

        # Retrieves a level prototype from Firestore.
        dictionary: dict = db.document(
            f'level_prototypes/{level_key}').get().to_dict()

        # Returns a level object created
        return Level.from_dict(dictionary)
Exemple #2
0
    def get_level(self, user_key: str, session_key: str,
                  level_key: str) -> Level:

        ref = db.document(
            f'users/{user_key}/sessions/{session_key}/data/level')

        dictionary: dict = ref.get().to_dict()

        return Level.from_dict(dictionary)
Exemple #3
0
class Samples:

    ###############
    ## Variables ##
    ###############
    db: Database = Database()

    # sample_user: User = User('user_042', 42, 'german')

    sample_performance_dict = {
        "defeated_by_gaps": 1,
        "defeated_by_opponent_type_1": 1,
        "defeated_by_opponent_type_2": 1,
        "defeated_by_opponent_type_3": 0,
        "score": 600,
        "time": 45,
        "progress": 15,
        "difficulty": 80,
    }

    sample_performance: Performance = Performance(
        defeated_by_gaps=1,
        defeated_by_opponent_type_1=1,
        defeated_by_opponent_type_2=1,
        defeated_by_opponent_type_3=0,
        score=600,
        time=45,
        progress=15,
        difficulty=80,
    )

    sample_session: Session = Session('session_001', 1, 'finished',
                                      db.generate_timestamp(),
                                      sample_performance)

    sample_level: Level = Level.from_dict({
        'key':
        'level_01',
        'id':
        1,
        'line_00': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
        ],
        'line_01': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
        ],
        'line_02': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
        ],
        'line_03': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', 'D', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.'
        ],
        'line_04': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'B'
        ],
        'line_05': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_06': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', 'S', 'S', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_07': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_08': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', 'S', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', 'C', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_09': [
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', 'B', 'B', 'B', 'B', '.', '.', '.', '.', '.',
            '.', '.', '.', 'D', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_10': [
            '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', 'C', '.', '.', '.', '.', '.', 'C', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_11': [
            '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', 'B', '.', 'B',
            'B', 'B', 'B', 'B', 'B', '.', '.', '.', 'D', 'D', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_12': [
            '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', '.', '.', '.',
            'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', '.',
            'D', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_13': [
            '.', '.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.',
            '.', '.', '.', '.', '.', '.', '.', '.', 'D', 'D', '.', '.', '.',
            'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', 'D',
            'D', 'D', 'D', 'D', '.', '.', '.', '.', '.', '.', 'D'
        ],
        'line_14': [
            'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
            'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', '.', '.', '.',
            'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
            'X', 'X', 'X', 'X', '.', '.', 'Z', 'Z', 'Z', 'D', 'D'
        ]
    })

    sample_user_1: User = User('user_001', 1, 'english')
    sample_user_2: User = User('user_002', 2, 'english')
    sample_user_3: User = User('user_003', 3, 'english')
    sample_user_4: User = User('user_004', 4, 'english')

    sample_session_1: Session = Session(
        'session_001', 1, 'finished', db.generate_timestamp(),
        Performance(0, 1, 0, 2, 1500, 48, 200, 80))
    sample_session_2: Session = Session(
        'session_002', 2, 'finished', db.generate_timestamp(),
        Performance(0, 2, 0, 2, 3000, 130, 156, 100))
    sample_session_3: Session = Session(
        'session_003', 3, 'finished', db.generate_timestamp(),
        Performance(2, 0, 0, 2, 4500, 38, 137, 110))
    sample_session_4: Session = Session(
        'session_001', 1, 'finished', db.generate_timestamp(),
        Performance(1, 0, 0, 1, 4300, 48, 149, 90))
    sample_session_5: Session = Session(
        'session_002', 2, 'finished', db.generate_timestamp(),
        Performance(0, 0, 0, 0, 4300, 243, 200, 180))
    sample_session_6: Session = Session(
        'session_001', 1, 'finished', db.generate_timestamp(),
        Performance(0, 3, 1, 0, 2200, 38, 113, 65))
    sample_session_7: Session = Session(
        'session_002', 2, 'finished', db.generate_timestamp(),
        Performance(0, 2, 2, 0, 1100, 52, 200, 79))
    sample_session_8: Session = Session(
        'session_001', 1, 'finished', db.generate_timestamp(),
        Performance(2, 0, 0, 1, 500, 74, 31, 103))