Skip to content

Commit

Permalink
Merge branch 'main' into teacher-preview-mode
Browse files Browse the repository at this point in the history
  • Loading branch information
hasan-sh committed Jul 8, 2024
2 parents 28eaa56 + c7eea5d commit a0d434d
Show file tree
Hide file tree
Showing 67 changed files with 739 additions and 812 deletions.
13 changes: 10 additions & 3 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -2126,9 +2126,15 @@ def landing_page(user, first):

user_info = DATABASE.get_public_profile_settings(username)
user_programs = DATABASE.programs_for_user(username)
programs = list(user_programs)
# Only return the last program of the user
if user_programs:
user_programs = user_programs[:1][0]
last_program = None
if programs:
last_program = programs[:1][0]
for program in programs:
if not (program.get('is_modified') or 'is_modified' not in program):
programs.remove(program)

user_achievements = DATABASE.progress_by_username(username)

return render_template(
Expand All @@ -2137,7 +2143,8 @@ def landing_page(user, first):
page_title=gettext('title_landing-page'),
user=user['username'],
user_info=user_info,
program=user_programs,
programs=programs,
last_program=last_program,
achievements=user_achievements)


Expand Down
26 changes: 13 additions & 13 deletions content/adventures/de.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -892,22 +892,22 @@ adventures:
```
4:
story_text: |-
### Exercise
Debug this code. Good luck!
### Übung
Debugge dieses Programm. Viel Glück!
example_code: |
**Warning! This code needs to be debugged!**
**Warnung! Dieser Code muss gedebuggt werden!**
```
{print} 'Welcome to the online library!
{ask} What genre of books do you like?
{print} You like genre
author {is} {ask} 'Who's your favorite author?'
{print} 'author is your favorite author'
{print} Hmmm... i think you should try... books {at} {random}
{print} 'Willkommen zur Online-Bibiliothe!
{ask} Welche Buchgenre magst du?
{print} Du magst das Genre
autor {is} {ask} 'Wer ist dein(e) Lieblingsautor(in)?'
{print} 'autor ist dein(e) Lieblingsautor(in)'
{print} Hmmm... Ich denke du solltest... books {at} {random} ausprobieren
```
5:
story_text: |-
### Exercise
Debug this code. Good luck!
### Übung
Debugge dieses Programm. Viel Glück!
example_code: |
**Warning! This code needs to be debugged!**
```
Expand All @@ -927,8 +927,8 @@ adventures:
```
6:
story_text: |-
### Exercise
Debug this code. Good luck!
### Übung
Debugge dieses Programm. Viel Glück!
example_code: |
**Warning! This code needs to be debugged!**
```
Expand Down
4 changes: 2 additions & 2 deletions content/adventures/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,7 @@ adventures:
{for} i {in} {range} 1 {to} 4
grade = {ask} _
total = total + _
return _ / 4
{return} _ / 4
mean_grade = {call} _
{print} 'Your mean grade is ' mean_grade
Expand Down Expand Up @@ -2039,7 +2039,7 @@ adventures:
{define} calculate_new_price {with} amount, percentage
percentage = percentage / 100
discount_amount = amount * percentage
return amount - discount_amount
{return} amount - discount_amount
old_price = {ask} 'How much is on the price tag?'
discount = {ask} 'What percentage is the discount?'
Expand Down
34 changes: 17 additions & 17 deletions content/adventures/it.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ adventures:
{ask} Il personaggio principale di questa storia è
{print} Il personaggio principale ora camminerà nella foresta
{echo} È un po' spaventato,
{print} Sente rumori assurdi ovunque
{print} Sente rumori terrificanti ovunque
{print} Ha paura che questa sia una foresta infestata
```
story_text_2: |
Expand Down Expand Up @@ -339,33 +339,33 @@ adventures:
ask_command:
name: '{ask}'
default_save_name: ask_command
description: Introduction ask command
description: Introduzione comando {ask}
levels:
1:
story_text: |
## Il comando per chiedere
Ora che sai usare il comando `{print}`, sei pronto per imparare il prossimo comando: `{ask}`. Con il comando `{ask}`, puoi fare una domanda. Controlla:
example_code: |
```
{print} Hello!
{ask} What is your name?
{print} Ciao!
{ask} Come ti chiami?
```
story_text_2: |
## The `{echo}` command
If you want the computer to repeat the answer, you can use the `{echo}` command. The answer will then be echoed back at the end of the sentence, so in this example after hello.
example_code_2: |
```
{print} Hello!
{ask} What is your name?
{echo} hello
{print} Ciao!
{ask} Come ti chiami?
{echo} ciao
```
story_text_3: |
### Exercise
Try out the `{ask}` and `{echo}` commands. Firstly, fill in the blanks to make this program work.
Then ask 2 more questions using the `{ask}` command, after each `{ask}` use an `{echo}` to print the answer on the screen.
### Esercizio
Prova i comandi `{ask}` e `{echo}` . Prima di tutto, riempi i campi vuoti per far funzionare il programna.
Quindi, formula 2 altre domande utilizzando il comando `{ask}` e, dopo ciascun `{ask}`, utilizza `{echo}` per far visualizzare a schermo la risposta.
example_code_3: |
```
_ How are you doing?
_ Come va?
_
```
2:
Expand All @@ -378,10 +378,10 @@ adventures:
In questo modo il tuo codice diventa interattivo!
example_code: |
```
name {is} {ask} What is your name?
{print} Hello name
age {is} {ask} How old are you?
{print} name is age years old.
name {is} {ask} Come ti chiami?
{print} Ciao name
age {is} {ask} Quanti anni hai?
{print} name ha age anni.
```
story_text_2: |
### Esercizio
Expand Down Expand Up @@ -594,7 +594,7 @@ adventures:
_
```
calculator:
name: Calculator
name: Calcolatore
default_save_name: Calcolatrice
description: Crea una calcolatrice
levels:
Expand All @@ -620,7 +620,7 @@ adventures:
{else} {print} 'Sbagliato! Era ' _
```
story_text_3: |
**Extra** Puoi anche lasciare che il computer esegua somme casuali da solo utilizzando `{random}`.
**Extra** Puoi anche lasciare che il computer esegua prodotti casuali da solo utilizzando `{random}`.
example_code_3: |-
```
numbers = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Expand Down
131 changes: 69 additions & 62 deletions content/adventures/pt_BR.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -704,22 +704,16 @@ adventures:
Did you get it? Awesome! Would you like to add even more to your calculator? **This adventure continues in the next tab!**
example_code: |
```
{define} calculate_mean_grade
{define} calcular_média
total = 0
{for} i {in} {range} 1 {to} 4
grade = {ask} _
nota = {ask} _
total = total + _
return _ / 4
{return} _ / 4
mean_grade = {call} _
{print} 'Your mean grade is ' mean_grade
média = {call} _
{print} 'A sua média foi ' média
```
total = total + _
return _ / 4
mean_grade = {call} _
{print} 'Your mean grade is ' mean_grade
15:
story_text: |
You can add the `{while}` loop to the calculator game you've learned to make in a previous level.
Expand Down Expand Up @@ -1946,7 +1940,7 @@ adventures:
lado_escolhido = lados {at} {random}
membro_escolhido = membros _
cor_escolhida = cores _
{print} lado_escolhido < ' ' membro_escolhido ' no ' cor_escolhida
{print} membro_escolhido ' ' lado_escolhido ' no ' cor_escolhida
{print} 'Vamos jogar uma partida de Twister!'
{for} i {in} {range} 1 {to} _
Expand Down Expand Up @@ -1993,16 +1987,16 @@ adventures:
You should finish the line of code by calling the function that calculates the new price.
example_code: |
```
{define} calculate_new_price {with} amount, percentage
percentage = percentage / 100
discount_amount = amount * percentage
return amount - discount_amount
{define} calcular_preço_novo {with} valor, porcentagem
porcentagem = porcentagem / 100
valor_descontado = valor * porcentagem
{return} valor - valor_descontado
old_price = {ask} 'How much is on the price tag?'
discount = {ask} 'What percentage is the discount?'
preço_antigo = {ask} 'Qual é o valor na etiqueta de preço?'
desconto = {ask} 'Qual é a porcentagem de desconto?'
new_price = _ calculate_new_price {with} old_price, _
{print} 'The new price is ' new_price ' dollar'
preço_novo = _ calcular_preço_novo {with} preço_antigo, _
{print} 'O preço novo é ' preço_novo ' reais'
```
18:
story_text: |
Expand Down Expand Up @@ -2290,7 +2284,7 @@ adventures:
_ Há 3 portas na sua frente...
_ _ _ Qual delas você escolhe?
_ Você escolheu a porta... escolha
monstros _ um zumbi, um vampiro, NADA DE QUE VOCÊ CONSIGA ESCAPAR
monstros _ um zumbi, um vampiro, ALGO IMPOSSÍVEL DE SE ESCAPAR
_ Você vê...
{sleep}
_ _ _ _
Expand All @@ -2301,14 +2295,15 @@ adventures:
Can you make your Haunted House level 4 proof?
example_code: |
```
{print} _Escape from the haunted house!_
{print} _There are 3 doors in front of you..._
choice {is} {ask} _Which door do you choose?_
{print} _You picked door ..._ choice
monsters {is} a zombie, a vampire, NOTHING YOUVE ESCAPED
{print} _You see..._
_ Adicione aspas a este código _
{print} Escape da casa mal-assombrada!
{print} Há 3 portas na sua frente...
escolha {is} {ask} Qual delas você escolhe?
{print} Você escolheu a porta... escolha
monstros {is} um zumbi, um vampiro, ALGO IMPOSSÍVEL DE SE ESCAPAR
{print} Você vê...
{sleep}
{print} monsters {at} {random}
{print} monstros {at} {random}
```
5:
story_text: |
Expand All @@ -2317,51 +2312,63 @@ adventures:
In this level you can only win the game by picking the same door Hedy picked randomly.
example_code: |
```
{print} 'Escape from the haunted house!'
{print} 'There are 3 doors in front of you...'
doors {is} 1, 2, 3
monsters {is} werewolf, mummy, vampire, zombie
chosen_door {is} {ask} 'Which door do you choose?'
{print} 'You chose door...' chosen_door
{print} 'Escape da casa mal-assombrada!'
{print} 'Há 3 portas na sua frente...'
portas {is} 1, 2, 3
monstros {is} lobisomem, múmia, vampiro, zumbi
porta_escolhida {is} {ask} 'Qual delas você escolhe?'
{print} 'Você escolhe a porta... ' porta_escolhida
{sleep}
correct_door {is} doors {at} {random}
_ _ _ _ {print} 'Great! Youve escaped!'
{else} {print} 'Oh no! You are being eaten by a...' monsters {at} {random}
porta_correta {is} portas {at} {random}
_ _ _ _ {print} 'Ótimo! Você escapou!'
{else} {print} 'Ah não! Você está sendo devorado(a) por um(a)... ' monstros {at} {random}
```
9:
story_text: |
In this level you can use nesting, which allows you to make the haunted house even more interactive!
example_code: |
```
{print} 'Escape from the Haunted House!'
player = alive
doors = 1, 2, 3
monsters = zombie, vampire, giant spider
{print} 'Escape da Casa Mal-Assombrada!!'
jogador = vivo
portas = 1, 2, 3
monstros = zumbi, vampiro, aranha gigante
{repeat} 3 {times}
{if} player {is} alive
correct_door {is} doors {at} {random}
{print} 'There are 3 doors in front of you...'
chosen_door = {ask} 'Which door do you choose?'
{if} chosen_door {is} correct_door
{print} 'No monsters here!'
{if} jogador {is} vivo
porta_correta {is} portas {at} {random}
{print} 'Há 3 portas na sua frente...'
porta_escolhida = {ask} 'Qual delas você escolhe?'
{if} porta_escolhida {is} porta_correta
{print} 'Sem monstros aqui!'
{else}
{print} 'You are eaten by a ' monsters {at} {random}
player = dead
{print} 'Você foi devorado(a) por um(a) ' monstros {at} {random}
jogador = morto
{else}
{print} 'GAME OVER'
{if} player {is} alive
{print} 'Great! You survived!'
{print} 'FIM DE JOGO'
{if} jogador {is} morto
{print} 'Ótimo! Você sobreviveu!'
```
11:
story_text: |
In this level we've changed the repeat command and we've added a line to our haunted house that tells the player in which room they are.
Neste nível, mudamos o comando `{for}` para podermos dizer ao(à) jogador(a) onde está.
### Exercício 1
Complete o programa de modo que o(a) jogador(a) saiba onde está.
### Exercício 2
Transforme o programa em uma aventura seguindo estes passos:
1. Faça uma lista de escolhas (ex.: lutar ou fugir)
2. Certifique-se de que o(a) jogador(a) pode escolher uma opção usando `{ask}`
3. Foi a escolha certa? Então o jogo pode prosseguir para o próximo monstro. Foi uma escolha ruim? Informe isso com um `{print}`.
**Extra** Se você fizer uma escolha ruim, o jogo ainda mostra outro monstro! Como pode consertar isso?
example_code: |
```
{print} 'Escape from the Haunted House!'
monsters = zombie, vampire, giant spider
{print} 'Escape da Casa Mal-Assombrada!'
monstros = zumbi, vampiro, aranha gigante
_
{print} 'Room ' i
monster = monsters {at} {random}
{print} 'Sala ' i
monstro = monstros {at} {random}
```
14:
story_text: |
Expand Down Expand Up @@ -2559,13 +2566,13 @@ adventures:
levels:
2:
story_text: |
## Variables
You can name a word with `{is}`. This is called a **variable**. In this example we made a variable called name and a variable called age. You can use the word name anywhere in your code and it will be replaced by Hedy, like this:
## Variáveis
Você pode dar um valor a uma palavra usando `{is}`. Isso se chama **variável**. Neste exemplo, fizemos uma variável chamada de nome e uma variável chamada de idade. Você pode usar a palavra nome em qualquer parte do seu código e ela será substituída por Hedy, assim:
example_code: |
```
name {is} Hedy
age {is} 15
{print} name is age years old
nome {is} Hedy
idade {is} 15
{print} nome tem idade anos
```
story_text_2: |
### Exercise
Expand Down
2 changes: 1 addition & 1 deletion data-for-testing.json
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
"other_text"
],
"epoch": 1,
"program_count": 2,
"program_count": 6,
"is_super_teacher": 1
},
{
Expand Down
Loading

0 comments on commit a0d434d

Please sign in to comment.