File size: 8,504 Bytes
9058b05
 
1777223
9058b05
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1777223
9058b05
 
1777223
9058b05
 
1777223
9058b05
 
1777223
9058b05
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1777223
9058b05
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
import random
from typing import List, Dict, Any

class FallbackQuestions:
    """Forhåndsdefinerte quiz-spørsmål som fallback"""
    
    def __init__(self):
        self.questions_db = {
            "norsk_historie": [
                {
                    "spørsmål": "Hvilket år ble Norge selvstendig fra Danmark?",
                    "alternativer": ["1814", "1905", "1821", "1830"],
                    "korrekt_svar": 0,
                    "forklaring": "Norge ble selvstendig fra Danmark i 1814 etter Napoleonskrigene og grunnloven ble vedtatt på Eidsvoll."
                },
                {
                    "spørsmål": "Hvem var Norges første konge etter selvstendigheten i 1905?",
                    "alternativer": ["Haakon VII", "Olav V", "Harald V", "Christian IV"],
                    "korrekt_svar": 0,
                    "forklaring": "Haakon VII ble Norges første konge etter unionsoppløsningen med Sverige i 1905."
                },
                {
                    "spørsmål": "Hvilket år ble Norge medlem av NATO?",
                    "alternativer": ["1945", "1949", "1952", "1955"],
                    "korrekt_svar": 1,
                    "forklaring": "Norge ble medlem av NATO i 1949, samme år som organisasjonen ble opprettet."
                },
                {
                    "spørsmål": "Hvem skrev teksten til Norges nasjonalsang?",
                    "alternativer": ["Henrik Ibsen", "Bjørnstjerne Bjørnson", "Knut Hamsun", "Rikard Nordraak"],
                    "korrekt_svar": 1,
                    "forklaring": "Bjørnstjerne Bjørnson skrev teksten til 'Ja, vi elsker dette landet' i 1859."
                },
                {
                    "spørsmål": "Hvilket år ble kvinnelig stemmerett innført i Norge?",
                    "alternativer": ["1907", "1913", "1920", "1945"],
                    "korrekt_svar": 1,
                    "forklaring": "Kvinnelig stemmerett ble innført i Norge i 1913, som et av de første landene i verden."
                }
            ],
            "oslo": [
                {
                    "spørsmål": "Hva heter Oslos hovedflyplass?",
                    "alternativer": ["Fornebu", "Gardermoen", "Torp", "Rygge"],
                    "korrekt_svar": 1,
                    "forklaring": "Oslo lufthavn Gardermoen er Oslos og Norges hovedflyplass, åpnet i 1998."
                },
                {
                    "spørsmål": "Hvilken fjord ligger Oslo ved?",
                    "alternativer": ["Trondheimsfjorden", "Oslofjorden", "Hardangerfjorden", "Sognefjorden"],
                    "korrekt_svar": 1,
                    "forklaring": "Oslo ligger innerst i Oslofjorden, som strekker seg fra Skagerrak."
                },
                {
                    "spørsmål": "Hva heter Oslos berømte operahus?",
                    "alternativer": ["Operaen", "Den Norske Opera", "Oslo Opera House", "Operahuset"],
                    "korrekt_svar": 3,
                    "forklaring": "Operahuset i Oslo åpnet i 2008 og er kjent for sin unike arkitektur hvor man kan gå på taket."
                },
                {
                    "spørsmål": "Hva het Oslo før 1925?",
                    "alternativer": ["Kristiania", "Christiania", "Kristiansand", "Kristiansund"],
                    "korrekt_svar": 0,
                    "forklaring": "Oslo het Kristiania fra 1877 til 1925, da navnet ble endret tilbake til Oslo."
                },
                {
                    "spørsmål": "Hvilken park inneholder Vigelandsanlegget?",
                    "alternativer": ["Vigelandsparken", "Frognerparken", "Slottsparken", "Tøyenparken"],
                    "korrekt_svar": 1,
                    "forklaring": "Vigelandsanlegget ligger i Frognerparken, som er Oslos største park."
                }
            ],
            "bergen": [
                {
                    "spørsmål": "Hva kalles Bergens berømte fiskemarked?",
                    "alternativer": ["Fisketorget", "Torget", "Bryggen", "Fiskemarkedet"],
                    "korrekt_svar": 0,
                    "forklaring": "Fisketorget i Bergen er et populært marked hvor man kan kjøpe fersk fisk og sjømat."
                },
                {
                    "spørsmål": "Hvilket fjell kan man ta Fløibanen opp til?",
                    "alternativer": ["Ulriken", "Fløyen", "Løvstakken", "Sandviksfjellet"],
                    "korrekt_svar": 1,
                    "forklaring": "Fløibanen er en kabelbane som går opp til Fløyen, 320 meter over havet."
                },
                {
                    "spørsmål": "Hva heter Bergens UNESCO-vernede bydel?",
                    "alternativer": ["Nordnes", "Bryggen", "Sandviken", "Møhlenpris"],
                    "korrekt_svar": 1,
                    "forklaring": "Bryggen i Bergen er på UNESCOs verdensarvliste og består av gamle hanseatiske bygninger."
                },
                {
                    "spørsmål": "Bergen kalles 'Porten til' hva?",
                    "alternativer": ["Fjordene", "Vestlandet", "Hardanger", "Sognefjorden"],
                    "korrekt_svar": 0,
                    "forklaring": "Bergen kalles 'Porten til fjordene' fordi den er utgangspunkt for mange fjordturer."
                }
            ],
            "general_norway": [
                {
                    "spørsmål": "Hvor mange fylker har Norge?",
                    "alternativer": ["11", "15", "18", "19"],
                    "korrekt_svar": 0,
                    "forklaring": "Norge har 11 fylker etter fylkesreformen som trådte i kraft i 2020."
                },
                {
                    "spørsmål": "Hva er Norges nasjonaldag?",
                    "alternativer": ["16. mai", "17. mai", "1. mai", "7. juni"],
                    "korrekt_svar": 1,
                    "forklaring": "17. mai er Norges nasjonaldag og feirer grunnloven fra 1814."
                },
                {
                    "spørsmål": "Hvilken valuta brukes i Norge?",
                    "alternativer": ["Euro", "Norske kroner", "Svenske kroner", "Dollar"],
                    "korrekt_svar": 1,
                    "forklaring": "Norge bruker norske kroner (NOK) som valuta."
                }
            ]
        }
    
    def get_questions(self, tema: str, språk: str, antall: int, type: str, vanskelighet: int) -> List[Dict[str, Any]]:
        """Hent fallback-spørsmål basert på tema"""
        
        # Normaliser tema til nøkkel
        tema_key = self._normalize_tema(tema)
        
        # Hent spørsmål for tema
        questions = self.questions_db.get(tema_key, self.questions_db["general_norway"])
        
        # Tilpass til ønsket antall
        if len(questions) >= antall:
            selected = random.sample(questions, antall)
        else:
            # Hvis vi ikke har nok spørsmål, fyll opp med generelle
            selected = questions.copy()
            remaining = antall - len(selected)
            general_questions = random.sample(self.questions_db["general_norway"], min(remaining, len(self.questions_db["general_norway"])))
            selected.extend(general_questions)
        
        # Tilpass vanskelighetsgrad (enkel implementasjon)
        for question in selected:
            if vanskelighet <= 2:
                # Gjør spørsmål enklere ved å gi hint
                question["forklaring"] = f"💡 Hint: {question['forklaring']}"
            elif vanskelighet >= 4:
                # Gjør spørsmål vanskeligere ved å fjerne hint
                question["forklaring"] = question["forklaring"].replace("💡 Hint: ", "")
        
        return selected[:antall]
    
    def _normalize_tema(self, tema: str) -> str:
        """Normaliser tema til database-nøkkel"""
        tema_lower = tema.lower()
        
        if any(word in tema_lower for word in ["historie", "norsk historie", "norway history"]):
            return "norsk_historie"
        elif "oslo" in tema_lower:
            return "oslo"
        elif "bergen" in tema_lower:
            return "bergen"
        else:
            return "general_norway"
    
    def get_available_topics(self) -> List[str]:
        """Returner liste over tilgjengelige temaer"""
        return [
            "Norsk historie",
            "Oslo", 
            "Bergen",
            "Norge generelt"
        ]