Felix Zieger commited on
Commit
45444c0
·
1 Parent(s): 8606349

use same normalization everywhere

Browse files
src/components/GameContainer.tsx CHANGED
@@ -151,7 +151,7 @@ export const GameContainer = () => {
151
  target_word: currentWord,
152
  description: sentence.join(' '),
153
  ai_guess: aiGuess,
154
- is_correct: isCorrect,
155
  session_id: sessionId
156
  });
157
 
@@ -182,9 +182,8 @@ export const GameContainer = () => {
182
  const guess = await guessWord(sentenceString, language);
183
  setAiGuess(guess);
184
 
185
- // Save game result in the background
186
- saveGameResult(finalSentence, guess, guess.toLowerCase() === currentWord.toLowerCase())
187
- .catch(error => console.error('Background save failed:', error));
188
 
189
  setGameState("showing-guess");
190
  } catch (error) {
 
151
  target_word: currentWord,
152
  description: sentence.join(' '),
153
  ai_guess: aiGuess,
154
+ is_correct: normalizeWord(aiGuess) === normalizeWord(currentWord), // Fixed comparison here
155
  session_id: sessionId
156
  });
157
 
 
182
  const guess = await guessWord(sentenceString, language);
183
  setAiGuess(guess);
184
 
185
+ // Save game result using the normalized word comparison
186
+ await saveGameResult(finalSentence, guess, normalizeWord(guess) === normalizeWord(currentWord));
 
187
 
188
  setGameState("showing-guess");
189
  } catch (error) {
src/components/game/SentenceBuilder.tsx CHANGED
@@ -25,8 +25,8 @@ interface SentenceBuilderProps {
25
  onInputChange: (value: string) => void;
26
  onSubmitWord: (e: React.FormEvent) => void;
27
  onMakeGuess: () => void;
28
- normalizeWord: () => void;
29
- onBack?: () => void;
30
  }
31
 
32
  export const SentenceBuilder = ({
 
25
  onInputChange: (value: string) => void;
26
  onSubmitWord: (e: React.FormEvent) => void;
27
  onMakeGuess: () => void;
28
+ normalizeWord: (word: string) => string; // Updated type definition
29
+ onBack?: () => void;
30
  }
31
 
32
  export const SentenceBuilder = ({
src/lib/words-food.ts CHANGED
@@ -30,7 +30,6 @@ export const englishFoodWords = [
30
  "MUSHROOM",
31
  "PUMPKIN",
32
  "ZUCCHINI",
33
- "BELL PEPPER",
34
  "CORN",
35
  "AVOCADO",
36
  "YOGURT",
@@ -39,7 +38,6 @@ export const englishFoodWords = [
39
  "PUDDING",
40
  "JAM"
41
  ];
42
-
43
  export const germanFoodWords = [
44
  "PIZZA",
45
  "NUDELN",
@@ -72,7 +70,7 @@ export const germanFoodWords = [
72
  "PILZ",
73
  "KÜRBIS",
74
  "ZUCCHINI",
75
- "BELL-PAPRIKA",
76
  "MAIS",
77
  "AVOCADO",
78
  "JOGHURT",
@@ -81,7 +79,6 @@ export const germanFoodWords = [
81
  "PUDDING",
82
  "MARMELADE"
83
  ];
84
-
85
  export const frenchFoodWords = [
86
  "PIZZA",
87
  "PÂTES",
@@ -114,7 +111,6 @@ export const frenchFoodWords = [
114
  "CHAMPIGNON",
115
  "COURGE",
116
  "COURGETTE",
117
- "POIVRON DOUX",
118
  "MAÏS",
119
  "AVOCAT",
120
  "YAOURT",
@@ -123,7 +119,6 @@ export const frenchFoodWords = [
123
  "CRÈME",
124
  "CONFITURE"
125
  ];
126
-
127
  export const italianFoodWords = [
128
  "PIZZA",
129
  "PASTA",
@@ -156,7 +151,6 @@ export const italianFoodWords = [
156
  "FUNGHI",
157
  "ZUCCA",
158
  "ZUCCHINI",
159
- "PEPERONE DOLCE",
160
  "MAIS",
161
  "AVOCADO",
162
  "YOGURT",
@@ -165,7 +159,6 @@ export const italianFoodWords = [
165
  "CREMA",
166
  "MARMELLATA"
167
  ];
168
-
169
  export const spanishFoodWords = [
170
  "PIZZA",
171
  "PASTA",
 
30
  "MUSHROOM",
31
  "PUMPKIN",
32
  "ZUCCHINI",
 
33
  "CORN",
34
  "AVOCADO",
35
  "YOGURT",
 
38
  "PUDDING",
39
  "JAM"
40
  ];
 
41
  export const germanFoodWords = [
42
  "PIZZA",
43
  "NUDELN",
 
70
  "PILZ",
71
  "KÜRBIS",
72
  "ZUCCHINI",
73
+ "PAPRIKA",
74
  "MAIS",
75
  "AVOCADO",
76
  "JOGHURT",
 
79
  "PUDDING",
80
  "MARMELADE"
81
  ];
 
82
  export const frenchFoodWords = [
83
  "PIZZA",
84
  "PÂTES",
 
111
  "CHAMPIGNON",
112
  "COURGE",
113
  "COURGETTE",
 
114
  "MAÏS",
115
  "AVOCAT",
116
  "YAOURT",
 
119
  "CRÈME",
120
  "CONFITURE"
121
  ];
 
122
  export const italianFoodWords = [
123
  "PIZZA",
124
  "PASTA",
 
151
  "FUNGHI",
152
  "ZUCCA",
153
  "ZUCCHINI",
 
154
  "MAIS",
155
  "AVOCADO",
156
  "YOGURT",
 
159
  "CREMA",
160
  "MARMELLATA"
161
  ];
 
162
  export const spanishFoodWords = [
163
  "PIZZA",
164
  "PASTA",
src/lib/words-sports.ts CHANGED
@@ -54,7 +54,6 @@ export const englishSportsWords = [
54
  "CANYONING",
55
  "CAVING"
56
  ];
57
-
58
  export const germanSportsWords = [
59
  "FUSSBALL",
60
  "TENNIS",
@@ -97,7 +96,6 @@ export const germanSportsWords = [
97
  "RUDERN",
98
  "LACROSSE"
99
  ];
100
-
101
  export const frenchSportsWords = [
102
  "FOOTBALL",
103
  "TENNIS",
@@ -120,7 +118,6 @@ export const frenchSportsWords = [
120
  "VOILE",
121
  "LUTTE",
122
  "GYMNASTIQUE",
123
- "TIR À L'ARC",
124
  "ESCRIME",
125
  "MOTOCYCLISME",
126
  "TIR",
@@ -135,12 +132,9 @@ export const frenchSportsWords = [
135
  "SKATEBOARD",
136
  "WINDSURF",
137
  "BADMINTON",
138
- "TENNIS DE TABLE",
139
- "NATATION SYNCHRONISÉE",
140
  "AVIRON",
141
  "LACROSSE"
142
  ];
143
-
144
  export const italianSportsWords = [
145
  "CALCIO",
146
  "TENNIS",
@@ -163,27 +157,22 @@ export const italianSportsWords = [
163
  "VELA",
164
  "LOTTA",
165
  "GINNASTICA",
166
- "TIRO CON L'ARCO",
167
  "SCHERMA",
168
  "MOTOCICLISMO",
169
- "TIRO A SEGNO",
170
  "EQUITAZIONE",
171
  "PALLAMANO",
172
  "SNOWBOARD",
173
  "PALLANUOTO",
174
  "TRIATHLON",
175
- "SOLLEVAMENTO PESI",
176
  "JUDO",
177
  "TAEKWONDO",
178
  "SKATEBOARD",
179
  "WINDSURF",
180
  "BADMINTON",
181
  "PING-PONG",
182
- "NUOTO SINCRONIZZATO",
183
  "CANOTTAGGIO",
184
  "LACROSSE"
185
  ];
186
-
187
  export const spanishSportsWords = [
188
  "FÚTBOL",
189
  "TENIS",
@@ -206,7 +195,6 @@ export const spanishSportsWords = [
206
  "VELA",
207
  "LUCHA",
208
  "GIMNASIA",
209
- "TIRO CON ARCO",
210
  "ESGRIMA",
211
  "MOTOCICLISMO",
212
  "TIRO",
@@ -221,13 +209,10 @@ export const spanishSportsWords = [
221
  "SKATEBOARD",
222
  "WINDSURF",
223
  "BÁDMINTON",
224
- "TENIS DE MESA",
225
- "NATACIÓN SINCRONIZADA",
226
  "REMO",
227
  "LACROSSE"
228
  ];
229
 
230
-
231
  export const getRandomSportsWord = (language: string = 'en') => {
232
  let wordList;
233
  switch (language) {
 
54
  "CANYONING",
55
  "CAVING"
56
  ];
 
57
  export const germanSportsWords = [
58
  "FUSSBALL",
59
  "TENNIS",
 
96
  "RUDERN",
97
  "LACROSSE"
98
  ];
 
99
  export const frenchSportsWords = [
100
  "FOOTBALL",
101
  "TENNIS",
 
118
  "VOILE",
119
  "LUTTE",
120
  "GYMNASTIQUE",
 
121
  "ESCRIME",
122
  "MOTOCYCLISME",
123
  "TIR",
 
132
  "SKATEBOARD",
133
  "WINDSURF",
134
  "BADMINTON",
 
 
135
  "AVIRON",
136
  "LACROSSE"
137
  ];
 
138
  export const italianSportsWords = [
139
  "CALCIO",
140
  "TENNIS",
 
157
  "VELA",
158
  "LOTTA",
159
  "GINNASTICA",
 
160
  "SCHERMA",
161
  "MOTOCICLISMO",
 
162
  "EQUITAZIONE",
163
  "PALLAMANO",
164
  "SNOWBOARD",
165
  "PALLANUOTO",
166
  "TRIATHLON",
 
167
  "JUDO",
168
  "TAEKWONDO",
169
  "SKATEBOARD",
170
  "WINDSURF",
171
  "BADMINTON",
172
  "PING-PONG",
 
173
  "CANOTTAGGIO",
174
  "LACROSSE"
175
  ];
 
176
  export const spanishSportsWords = [
177
  "FÚTBOL",
178
  "TENIS",
 
195
  "VELA",
196
  "LUCHA",
197
  "GIMNASIA",
 
198
  "ESGRIMA",
199
  "MOTOCICLISMO",
200
  "TIRO",
 
209
  "SKATEBOARD",
210
  "WINDSURF",
211
  "BÁDMINTON",
 
 
212
  "REMO",
213
  "LACROSSE"
214
  ];
215
 
 
216
  export const getRandomSportsWord = (language: string = 'en') => {
217
  let wordList;
218
  switch (language) {
src/lib/words-standard.ts CHANGED
@@ -225,7 +225,6 @@ export const englishWords = [
225
  "PHONE",
226
  "CAMERA"
227
  ];
228
-
229
  export const germanWords = [
230
  "HUND",
231
  "KATZE",
@@ -453,7 +452,6 @@ export const germanWords = [
453
  "TELEFON",
454
  "KAMERA"
455
  ];
456
-
457
  export const frenchWords = [
458
  "CHIEN",
459
  "CHAT",
@@ -570,7 +568,6 @@ export const frenchWords = [
570
  "PILE",
571
  "BOUGIE", // duplicate
572
  "CLÔTURE",
573
- "BOÎTE AUX LETTRES",
574
  "BRIQUE",
575
  "LANTERNE",
576
  "ROUE",
@@ -598,7 +595,6 @@ export const frenchWords = [
598
  "FIL",
599
  "AIGUILLE",
600
  "BOUTON",
601
- "FERMETURE ÉCLAIR",
602
  "PANTOUFLE",
603
  "MANTEAU",
604
  "MOUFLE",
@@ -615,34 +611,25 @@ export const frenchWords = [
615
  "CHAPEAU", // duplicate
616
  "CASQUETTE",
617
  "MASQUE",
618
- "LUNETTES DE SOLEIL",
619
  "MONTRE",
620
  "COLLIER",
621
  "BRACELET",
622
  "BAGUE",
623
- "BOUCLE D'OREILLE",
624
- "SAC À DOS",
625
  "VALISE",
626
  "BILLET",
627
  "PASSEPORT",
628
  "CARTE",
629
  "BOUSSOLE",
630
  "TORCHE",
631
- "LAMPE DE POCHE",
632
- "FEU DE CAMP",
633
  "TENTE",
634
- "SAC DE COUCHAGE",
635
  "PIQUE-NIQUE",
636
  "BANC",
637
  "CLÔTURE", // duplicate
638
  "PORTAIL",
639
  "PANNEAU",
640
- "PASSAGE PIÉTON",
641
- "FEU DE SIGNALISATION",
642
  "TROTTOIR",
643
  "LANTERNE", // duplicate
644
  "BALLON", // duplicate
645
- "CARTE POSTALE",
646
  "TIMBRE",
647
  "LETTRE",
648
  "ENVELOPPE",
@@ -681,7 +668,6 @@ export const frenchWords = [
681
  "TÉLÉPHONE",
682
  "APPAREIL PHOTO"
683
  ];
684
-
685
  export const italianWords = [
686
  "CANE",
687
  "GATTO",
@@ -798,7 +784,6 @@ export const italianWords = [
798
  "BATTERIA",
799
  "CANDELA", // duplicate
800
  "RECINTO",
801
- "CASSETTA DELLE LETTERE",
802
  "MATTONE",
803
  "LANTERNA",
804
  "RUOTA",
@@ -821,7 +806,6 @@ export const italianWords = [
821
  "ASCIUGAMANO",
822
  "PANNO",
823
  "FORBICI",
824
- "NASTRO ADESIVO",
825
  "NASTRO",
826
  "FILO",
827
  "AGO",
@@ -843,7 +827,6 @@ export const italianWords = [
843
  "CAPPELLO", // duplicate
844
  "BERRETTO", // instead of MÜTZE, let's keep it consistent in Italian
845
  "MASCHERA",
846
- "OCCHIALI DA SOLE",
847
  "OROLOGIO",
848
  "COLLANA",
849
  "BRACCIALETTO",
@@ -856,16 +839,13 @@ export const italianWords = [
856
  "CARTINA",
857
  "BUSSOLA",
858
  "TORCIA",
859
- "TORCIA ELETTRICA",
860
  "FALÒ",
861
  "TENDA",
862
- "SACCO A PELO",
863
  "PICNIC",
864
  "PANCHINA",
865
  "RECINTO", // duplicate
866
  "CANCELLO",
867
  "SEGNALE",
868
- "STRISCE PEDONALI",
869
  "SEMAFORO",
870
  "MARCIAPIEDE",
871
  "LANTERNA", // duplicate
@@ -909,7 +889,6 @@ export const italianWords = [
909
  "TELEFONO",
910
  "FOTOCAMERA"
911
  ];
912
-
913
  export const spanishWords = [
914
  "PERRO",
915
  "GATO",
@@ -953,7 +932,6 @@ export const spanishWords = [
953
  "CABALLO",
954
  "LEÓN",
955
  "MONO",
956
- "OSO PANDA",
957
  "AVIÓN",
958
  "TREN",
959
  "CARAMELO",
@@ -1071,7 +1049,6 @@ export const spanishWords = [
1071
  "SOMBRERO", // duplicate
1072
  "GORRA",
1073
  "MÁSCARA",
1074
- "GAFAS DE SOL",
1075
  "RELOJ",
1076
  "COLLAR",
1077
  "PULSERA",
@@ -1086,14 +1063,11 @@ export const spanishWords = [
1086
  "ANTORCHA",
1087
  "LINTERNA",
1088
  "HOGUERA",
1089
- "TIENDA DE CAMPAÑA",
1090
- "SACO DE DORMIR",
1091
  "PICNIC",
1092
  "BANCO",
1093
  "VALLA", // duplicate
1094
  "PUERTA", // gate can be “PUERTA” or “PORTÓN”; used PUERTA earlier for “door,” so let's keep “PORTÓN” for gate below
1095
  "SEÑAL",
1096
- "PASO DE PEATONES",
1097
  "SEMÁFORO",
1098
  "ACERA",
1099
  "FAROL", // duplicate
 
225
  "PHONE",
226
  "CAMERA"
227
  ];
 
228
  export const germanWords = [
229
  "HUND",
230
  "KATZE",
 
452
  "TELEFON",
453
  "KAMERA"
454
  ];
 
455
  export const frenchWords = [
456
  "CHIEN",
457
  "CHAT",
 
568
  "PILE",
569
  "BOUGIE", // duplicate
570
  "CLÔTURE",
 
571
  "BRIQUE",
572
  "LANTERNE",
573
  "ROUE",
 
595
  "FIL",
596
  "AIGUILLE",
597
  "BOUTON",
 
598
  "PANTOUFLE",
599
  "MANTEAU",
600
  "MOUFLE",
 
611
  "CHAPEAU", // duplicate
612
  "CASQUETTE",
613
  "MASQUE",
 
614
  "MONTRE",
615
  "COLLIER",
616
  "BRACELET",
617
  "BAGUE",
 
 
618
  "VALISE",
619
  "BILLET",
620
  "PASSEPORT",
621
  "CARTE",
622
  "BOUSSOLE",
623
  "TORCHE",
 
 
624
  "TENTE",
 
625
  "PIQUE-NIQUE",
626
  "BANC",
627
  "CLÔTURE", // duplicate
628
  "PORTAIL",
629
  "PANNEAU",
 
 
630
  "TROTTOIR",
631
  "LANTERNE", // duplicate
632
  "BALLON", // duplicate
 
633
  "TIMBRE",
634
  "LETTRE",
635
  "ENVELOPPE",
 
668
  "TÉLÉPHONE",
669
  "APPAREIL PHOTO"
670
  ];
 
671
  export const italianWords = [
672
  "CANE",
673
  "GATTO",
 
784
  "BATTERIA",
785
  "CANDELA", // duplicate
786
  "RECINTO",
 
787
  "MATTONE",
788
  "LANTERNA",
789
  "RUOTA",
 
806
  "ASCIUGAMANO",
807
  "PANNO",
808
  "FORBICI",
 
809
  "NASTRO",
810
  "FILO",
811
  "AGO",
 
827
  "CAPPELLO", // duplicate
828
  "BERRETTO", // instead of MÜTZE, let's keep it consistent in Italian
829
  "MASCHERA",
 
830
  "OROLOGIO",
831
  "COLLANA",
832
  "BRACCIALETTO",
 
839
  "CARTINA",
840
  "BUSSOLA",
841
  "TORCIA",
 
842
  "FALÒ",
843
  "TENDA",
 
844
  "PICNIC",
845
  "PANCHINA",
846
  "RECINTO", // duplicate
847
  "CANCELLO",
848
  "SEGNALE",
 
849
  "SEMAFORO",
850
  "MARCIAPIEDE",
851
  "LANTERNA", // duplicate
 
889
  "TELEFONO",
890
  "FOTOCAMERA"
891
  ];
 
892
  export const spanishWords = [
893
  "PERRO",
894
  "GATO",
 
932
  "CABALLO",
933
  "LEÓN",
934
  "MONO",
 
935
  "AVIÓN",
936
  "TREN",
937
  "CARAMELO",
 
1049
  "SOMBRERO", // duplicate
1050
  "GORRA",
1051
  "MÁSCARA",
 
1052
  "RELOJ",
1053
  "COLLAR",
1054
  "PULSERA",
 
1063
  "ANTORCHA",
1064
  "LINTERNA",
1065
  "HOGUERA",
 
 
1066
  "PICNIC",
1067
  "BANCO",
1068
  "VALLA", // duplicate
1069
  "PUERTA", // gate can be “PUERTA” or “PORTÓN”; used PUERTA earlier for “door,” so let's keep “PORTÓN” for gate below
1070
  "SEÑAL",
 
1071
  "SEMÁFORO",
1072
  "ACERA",
1073
  "FAROL", // duplicate
src/services/mistralService.ts CHANGED
@@ -32,14 +32,12 @@ export const guessWord = async (sentence: string, language: string): Promise<str
32
  console.log('Processing guess for sentence:', sentence);
33
 
34
  const words = sentence.trim().split(/\s+/);
35
- const targetWord = words[0].toLowerCase();
36
 
37
  console.log('Calling guess-word function with sentence:', sentence, 'language:', language);
38
 
39
  const { data, error } = await supabase.functions.invoke('guess-word', {
40
  body: {
41
- sentence,
42
- targetWord,
43
  language
44
  }
45
  });
 
32
  console.log('Processing guess for sentence:', sentence);
33
 
34
  const words = sentence.trim().split(/\s+/);
 
35
 
36
  console.log('Calling guess-word function with sentence:', sentence, 'language:', language);
37
 
38
  const { data, error } = await supabase.functions.invoke('guess-word', {
39
  body: {
40
+ sentence,
 
41
  language
42
  }
43
  });