Skip to content

Commit 55530de

Browse files
committed
feat: strict world unlock & improve var question
- Recalculated world unlock thresholds (95% of estimated 55pts/q) to prevent early unlocks - Improved 'var_5' question to be more deterministic (Rex the dog) and fun
1 parent 097f512 commit 55530de

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

src/data/questions/variables.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ export const variablesQuestions: QuestionDocument[] = [
7373
difficulty: 'medium',
7474
ageMin: 10,
7575
title: 'Guardando e mostrando',
76-
prompt: 'Complete o código para guardar seu nome e mostrar uma saudação:',
77-
starterCode: 'nome = "___"\nprint("Bem-vindo, " + nome)',
78-
solutionTemplate: 'nome = "Python"',
76+
prompt: 'Você tem um cachorro chamado Rex! Complete o código para guardar o nome dele na variável:',
77+
starterCode: 'nome_pet = "___"\nprint("Olá, " + nome_pet + "!")',
78+
solutionTemplate: 'nome_pet = "Rex"',
7979
tests: [
80-
{ input: null, expectedOutput: 'Bem-vindo, Python' },
80+
{ input: null, expectedOutput: 'Olá, Rex!' },
8181
],
8282
explanationKidFriendly: 'Variáveis guardam valores que podemos usar depois! É só escolher um nome, usar = e colocar o valor. Depois é só usar o nome da variável!',
8383
points: 20,

src/data/worlds.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,92 +11,94 @@ export interface WorldInfo {
1111

1212
// Definição dos mundos do jogo
1313
// Ordem pedagógica correta: básico → variáveis → números → decisões → repetições → funções → listas → strings
14+
// requiredScore = 95% dos pontos acumulados dos mundos anteriores (Estimativa alta performance: 55 pts/questão)
1415
export const WORLDS: WorldInfo[] = [
1516
{
1617
id: 'basic_commands',
1718
name: 'Primeiros Passos',
1819
description: 'Aprenda a dar os primeiros comandos em Python!',
1920
icon: '🚀',
2021
color: '#00d9ff',
22+
// Sempre desbloqueado
2123
},
2224
{
2325
id: 'variables',
2426
name: 'Mundo das Variáveis',
2527
description: 'Guarde informações em caixinhas mágicas!',
2628
icon: '📦',
2729
color: '#667eea',
28-
requiredScore: 30,
30+
requiredScore: 836, // 95% de 880 (16 questões × 55pts)
2931
},
3032
{
3133
id: 'numbers',
3234
name: 'Números Mágicos',
3335
description: 'Faça cálculos incríveis como um mago da matemática!',
3436
icon: '🔢',
3537
color: '#9f7aea',
36-
requiredScore: 60,
38+
requiredScore: 1776, // 95% de 1870 (acumulado W1+W2)
3739
},
3840
{
3941
id: 'conditions',
4042
name: 'Terra das Decisões',
4143
description: 'Faça escolhas e crie caminhos diferentes!',
4244
icon: '🔀',
4345
color: '#f093fb',
44-
requiredScore: 100,
46+
requiredScore: 2665, // 95% de 2805 (acumulado W1..W3)
4547
},
4648
{
4749
id: 'loops',
4850
name: 'Ilha da Repetição',
4951
description: 'Repita comandos como um feiticeiro!',
5052
icon: '🔄',
5153
color: '#48bb78',
52-
requiredScore: 150,
54+
requiredScore: 3657, // 95% de 3850 (acumulado W1..W4)
5355
},
5456
{
5557
id: 'functions',
5658
name: 'Vale das Funções',
5759
description: 'Crie suas próprias magias reutilizáveis!',
5860
icon: '✨',
5961
color: '#ed8936',
60-
requiredScore: 200,
62+
requiredScore: 4598, // 95% de 4840 (acumulado W1..W5)
6163
},
6264
{
6365
id: 'lists',
6466
name: 'Floresta das Listas',
6567
description: 'Organize muitas coisas numa única lista!',
6668
icon: '📜',
6769
color: '#fc8181',
68-
requiredScore: 260,
70+
requiredScore: 5486, // 95% de 5775 (acumulado W1..W6)
6971
},
7072
{
7173
id: 'strings',
7274
name: 'Reino das Palavras',
7375
description: 'Manipule textos e crie histórias!',
7476
icon: '📝',
7577
color: '#fbd38d',
76-
requiredScore: 320,
78+
requiredScore: 6479, // 95% de 6820 (acumulado W1..W7)
7779
},
7880
{
7981
id: 'user_input',
8082
name: 'Templo do Oráculo',
8183
description: 'Aprenda a conversar com o usuário!',
8284
icon: '🔮',
8385
color: '#d69e2e',
84-
requiredScore: 380,
86+
requiredScore: 7471, // 95% de 7865 (acumulado W1..W8)
8587
},
8688
{
8789
id: 'dictionaries',
8890
name: 'Biblioteca Secreta',
8991
description: 'Guarde segredos em dicionários!',
9092
icon: '📚',
9193
color: '#9b2c2c',
92-
requiredScore: 440,
94+
requiredScore: 7994, // 95% de 8415 (acumulado W1..W9)
9395
},
9496
{
9597
id: 'error_handling',
9698
name: 'Fortaleza dos Bugs',
9799
description: 'Proteja seu código contra erros!',
98100
icon: '🛡️',
99101
color: '#4a5568',
100-
requiredScore: 500,
102+
requiredScore: 8464, // 95% de 8910 (acumulado W1..W10)
101103
},
102104
];

0 commit comments

Comments
 (0)