+
+
+```
diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md
new file mode 100644
index 00000000000..9085d193e25
--- /dev/null
+++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md
@@ -0,0 +1,62 @@
+---
+id: 62a2401b9842721796b72850
+title: 步驟 7
+challengeType: 0
+dashedName: step-7
+---
+
+# --description--
+
+爲你的 `#text` 元素提供以下文本:
+
+```markup
+Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town.
+You are in the town square. Where do you want to go? Use the buttons above.
+```
+
+# --hints--
+
+`#text` 元素應該有上面引用的文本。
+
+```js
+const text = document.querySelector('#text');
+assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+```
diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md
new file mode 100644
index 00000000000..87fc3c14d72
--- /dev/null
+++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a2401b9842721796b72850.md
@@ -0,0 +1,62 @@
+---
+id: 62a2401b9842721796b72850
+title: 步骤 7
+challengeType: 0
+dashedName: step-7
+---
+
+# --description--
+
+为你的 `#text` 元素提供以下文本:
+
+```markup
+Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town.
+You are in the town square. Where do you want to go? Use the buttons above.
+```
+
+# --hints--
+
+`#text` 元素应该有上面引用的文本。
+
+```js
+const text = document.querySelector('#text');
+assert.equal(text.innerText, "Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
diff --git a/curriculum/challenges/espanol/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/espanol/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index 437d64f7a69..c714e6de1f6 100644
--- a/curriculum/challenges/espanol/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/espanol/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -164,7 +164,7 @@ async (getUserInput) => {
const res = await fetch(url + '/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- body: `username=fcc_test_${Date.now()}`.substingr(0, 29)
+ body: `username=fcc_test_${Date.now()}`.substring(0, 29)
});
if (res.ok) {
const { _id, username } = await res.json();
diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters.md
index 278e9c3c5ee..17980d1850b 100644
--- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters.md
+++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-pass-an-object-as-a-functions-parameters.md
@@ -8,7 +8,7 @@ dashedName: use-destructuring-assignment-to-pass-an-object-as-a-functions-parame
# --description--
-In alcuni casi, è possibile destrutturare l'oggetto in un argomento funzione.
+In alcuni casi, è possibile destrutturare l'oggetto in un argomento di una funzione.
Considera il codice qui sotto:
@@ -19,7 +19,7 @@ const profileUpdate = (profileData) => {
}
```
-Questo destruttura efficacemente l'oggetto passato alla funzione. Questo può anche essere fatto sul posto:
+Questo codice destruttura efficacemente l'oggetto passato alla funzione. Può anche essere fatto sul posto:
```js
const profileUpdate = ({ name, age, nationality, location }) => {
diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index aad266f57ca..8cc761006e7 100644
--- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -164,7 +164,7 @@ async (getUserInput) => {
const res = await fetch(url + '/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- body: `username=fcc_test_${Date.now()}`.substingr(0, 29)
+ body: `username=fcc_test_${Date.now()}`.substring(0, 29)
});
if (res.ok) {
const { _id, username } = await res.json();
diff --git a/curriculum/challenges/italian/10-coding-interview-prep/rosetta-code/discordian-date.md b/curriculum/challenges/italian/10-coding-interview-prep/rosetta-code/discordian-date.md
index 7692a051fd4..a9e533ccd36 100644
--- a/curriculum/challenges/italian/10-coding-interview-prep/rosetta-code/discordian-date.md
+++ b/curriculum/challenges/italian/10-coding-interview-prep/rosetta-code/discordian-date.md
@@ -7,12 +7,11 @@ dashedName: discordian-date
---
# --description--
+Il calendario Gregoriano è un calendario solare con 12 mesi di 28-31 giorni ognuno. Una settimana consiste in sette giorni e ci sono 52 settimane e 1 giorno ogni anno. L'anno è composto da 365 giorni con un giorno bisestile aggiunto a febbraio in ogni anno bisestile. Un anno bisestile si verifica ogni quattro anni, tranne per i primi tre anni secolari di ogni 400 anni.
-Il calendario Gregoriano è un calendario solare con 12 mesi di 28-31 giorni ognuno. L'anno in entrambi i calendari consiste di 365 giorni, con un giorno bisestile aggiunto a febbraio negli anni bisestili eccetto per 3 anni centenari ogni quattrocento anni.
+Il calendario Discordiano è allineato con il calendario Gregoriano e inizia il primo di gennaio. Una settimana consiste di cinque giorni e ci sono 73 settimane in un anno. L'anno è composto da 365 giorni, con una giornata in più inserita tra Caos 59 e Caos 60 ogni anno bisestile.
-Il calendario Discordiano è allineato con il calendario Gregoriano e inizia il primo di Gennaio. La sua settimana consiste in cinque giorni, ci sono 73 settimane in un anno. Ogni quattro anni nel calendario Discordiano, un giorno extra è inserito tra Chaos 59 e Chaos 60.
-
-I mesi, i giorni della settimana, e gli eventi nel calendario Discordiano sono dati da:
+I mesi, i giorni della settimana, gli eventi apostolici e i giorni sacri nel calendario Discordiano sono:
Settimane: `'Chaos', 'Discord', 'Confusion', 'Bureaucracy', 'The Aftermath'`.
@@ -26,7 +25,7 @@ Giorni sacri: `'Chaoflux', 'Discoflux', 'Confuflux', 'Bureflux', 'Afflux'`.
Converti una certa data dal calendario Discordiano al calendario Gregoriano.
-Nota che il giorno Chaos 1, 3188 YOLD nel calendario Discordiano è il giorno primo gennaio 2022 nel calendario Gregoriano.
+Nota che il giorno Chaos 1, 3188 YOLD nel calendario Discordiano è il giorno 1 gennaio 2022 del calendario Gregoriano.
# --hints--
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md
new file mode 100644
index 00000000000..63cb2df0663
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8aa98a8289d0a698eee1d.md
@@ -0,0 +1,187 @@
+---
+id: 62a8aa98a8289d0a698eee1d
+title: Step 53
+challengeType: 0
+dashedName: step-53
+---
+
+# --description--
+
+Le proprietà degli oggetti sono scritte come coppie `key: value`, dove `key` è il nome della proprietà (o chiave), e `value` è il valore che la proprietà contiene. Ad esempio, ecco un oggetto con una chiave `name` impostata sul valore `Quincy Larson`.
+
+```js
+{
+ name: "Quincy Larson"
+}
+```
+
+Aggiungi una proprietà `name` all'oggetto vuoto e dalle il valore `town square`.
+
+# --hints--
+
+Il primo valore di `locations` dovrebbe essere un oggetto.
+
+```js
+assert.isObject(locations[0]);
+```
+
+Il primo valore di `locations` dovrebbe avere una proprietà `name`.
+
+```js
+assert.isDefined(locations[0].name);
+```
+
+Il primo valore di `locations` dovrebbe avere una proprietà `name` con il valore `town square`.
+
+```js
+assert.equal(locations[0].name, "town square");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+--fcc-editable-region--
+const locations = [
+ {
+
+ }
+];
+--fcc-editable-region--
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+
+}
+
+function goTown() {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+function goStore() {
+ button1.innerText = "Buy 10 health (10 gold)";
+ button2.innerText = "Buy weapon (30 gold)";
+ button3.innerText = "Go to town square";
+ button1.onclick = buyHealth;
+ button2.onclick = buyWeapon;
+ button3.onclick = goTown;
+ text.innerText = "You enter the store.";
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md
new file mode 100644
index 00000000000..6d03f8e0d85
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ab0e27cbaf0b54ba8a42.md
@@ -0,0 +1,200 @@
+---
+id: 62a8ab0e27cbaf0b54ba8a42
+title: Step 54
+challengeType: 0
+dashedName: step-54
+---
+
+# --description--
+
+Proprio come i valori degli array, le proprietà degli oggetti sono separate da una virgola. Aggiungi una virgola dopo la proprietà `name` e aggiungi una proprietà `button text` con il valore di un array vuoto. Nota che visto che il nome della proprietà ha più di una parola, dovrai racchiuderlo tra virgolette.
+
+Ad esempio:
+
+```js
+{
+ name: "Naomi",
+ "favorite color": "purple"
+}
+```
+
+# --hints--
+
+Il primo valore di `locations` dovrebbe essere un oggetto.
+
+```js
+assert.isObject(locations[0]);
+```
+
+Il primo valore di `locations` dovrebbe avere una proprietà `button text`.
+
+```js
+assert.isDefined(locations[0]["button text"]);
+```
+
+Il primo valore di `locations` dovrebbe avere una proprietà `button text` con un array come valore.
+
+```js
+assert.isArray(locations[0]["button text"]);
+```
+
+Il primo valore di `locations` dovrebbe avere una proprietà `button text` con un array vuoto come valore.
+
+```js
+assert.equal(locations[0]["button text"].length, 0);
+```
+
+Non dovresti rimuovere o cambiare la proprietà `name`.
+
+```js
+assert.equal(locations[0].name, "town square");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+--fcc-editable-region--
+const locations = [
+ {
+ name: "town square"
+ }
+];
+--fcc-editable-region--
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+
+}
+
+function goTown() {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+function goStore() {
+ button1.innerText = "Buy 10 health (10 gold)";
+ button2.innerText = "Buy weapon (30 gold)";
+ button3.innerText = "Go to town square";
+ button1.onclick = buyHealth;
+ button2.onclick = buyWeapon;
+ button3.onclick = goTown;
+ text.innerText = "You enter the store.";
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md
new file mode 100644
index 00000000000..ceda4b2f09c
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ac194679e60cb561b0a8.md
@@ -0,0 +1,194 @@
+---
+id: 62a8ac194679e60cb561b0a8
+title: Step 55
+challengeType: 0
+dashedName: step-55
+---
+
+# --description--
+
+Dai all'array vuoto di `button text` tre elementi stringa. Usa le tre stringhe passate alle proprietà `innerText` dei pulsanti nella funzione `goTown`. Ricorda che i valori negli array sono separati da una virgola.
+
+# --hints--
+
+L'array di `button text` dovrebbe avere tre elementi.
+
+```js
+assert.lengthOf(locations[0]["button text"], 3);
+```
+
+L'array di `button text` dovrebbe avere tre stringhe.
+
+```js
+assert.isString(locations[0]["button text"][0]);
+assert.isString(locations[0]["button text"][1]);
+assert.isString(locations[0]["button text"][2]);
+```
+
+Il primo valore nell'array di `button text` dovrebbe essere "Go to store".
+
+```js
+assert.equal(locations[0]["button text"][0], "Go to store");
+```
+
+Il secondo valore nell'array di `button text` dovrebbe essere "Go to cave".
+
+```js
+assert.equal(locations[0]["button text"][1], "Go to cave");
+```
+
+Il terzo valore nell'array di `button text` dovrebbe essere "Fight dragon".
+
+```js
+assert.equal(locations[0]["button text"][2], "Fight dragon");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+--fcc-editable-region--
+const locations = [
+ {
+ name: "town square",
+ "button text": []
+ }
+];
+--fcc-editable-region--
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+
+}
+
+function goTown() {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+function goStore() {
+ button1.innerText = "Buy 10 health (10 gold)";
+ button2.innerText = "Buy weapon (30 gold)";
+ button3.innerText = "Go to town square";
+ button1.onclick = buyHealth;
+ button2.onclick = buyWeapon;
+ button3.onclick = goTown;
+ text.innerText = "You enter the store.";
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md
new file mode 100644
index 00000000000..8664685f2e8
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ad8e01d7cb0deae5ec66.md
@@ -0,0 +1,198 @@
+---
+id: 62a8ad8e01d7cb0deae5ec66
+title: Step 56
+challengeType: 0
+dashedName: step-56
+---
+
+# --description--
+
+Nell'oggetto crea un'altra proprietà chiamata `button functions`. Dai a questa proprietà un array contenente le tre funzioni assegnate alle proprietà `onclick` nella funzione `goTown`. Ricorda che queste funzioni sono variabili, non stringhe e non dovrebbero essere racchiuse tra virgolette.
+
+# --hints--
+
+Il primo oggetto di `locations` dovrebbe avere una proprietà `button functions`.
+
+```js
+assert.isDefined(locations[0]["button functions"]);
+```
+
+La proprietà `button functions` dovrebbe essere un array.
+
+```js
+assert.isArray(locations[0]["button functions"]);
+```
+
+La proprietà `button functions` dovrebbe avere tre valori al suo interno.
+
+```js
+assert.lengthOf(locations[0]["button functions"], 3);
+```
+
+Il primo valore dell'array `button functions` dovrebbe essere la funzione `goStore`.
+
+```js
+assert.equal(locations[0]["button functions"][0], goStore);
+```
+
+Il secondo valore dell'array `button functions` dovrebbe essere la funzione `goCave`.
+
+```js
+assert.equal(locations[0]["button functions"][1], goCave);
+```
+
+Il terzo valore dell'array `button functions` dovrebbe essere la funzione `fightDragon`.
+
+```js
+assert.equal(locations[0]["button functions"][2], fightDragon);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+--fcc-editable-region--
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"]
+ }
+];
+--fcc-editable-region--
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+
+}
+
+function goTown() {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+function goStore() {
+ button1.innerText = "Buy 10 health (10 gold)";
+ button2.innerText = "Buy weapon (30 gold)";
+ button3.innerText = "Go to town square";
+ button1.onclick = buyHealth;
+ button2.onclick = buyWeapon;
+ button3.onclick = goTown;
+ text.innerText = "You enter the store.";
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md
new file mode 100644
index 00000000000..a454f9b5094
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8ae85fcaedc0fddc7ca4f.md
@@ -0,0 +1,235 @@
+---
+id: 62a8ae85fcaedc0fddc7ca4f
+title: Step 58
+challengeType: 0
+dashedName: step-58
+---
+
+# --description--
+
+Aggiungi un secondo oggetto all'array `locations` (ricorda di separarli con una virgola). Seguendo il modello che hai usato nel primo oggetto, crea le stesse proprietà ma usa i valori dalla funzione `goStore`. Imposta la proprietà `name` su `store`.
+
+# --hints--
+
+L'array `locations` dovrebbe contenere due valori.
+
+```js
+assert.lengthOf(locations, 2);
+```
+
+Entrambi i valori di `locations` dovrebbero essere oggetti.
+
+
+```js
+assert.isObject(locations[0]);
+assert.isObject(locations[1]);
+```
+
+Il secondo oggetto di `locations` dovrebbe avere una proprietà `name` con il valore `store`.
+
+```js
+assert.equal(locations[1].name, "store");
+```
+
+Il secondo oggetto di `locations` dovrebbe avere una proprietà `button text` con un array come valore.
+
+```js
+assert.isArray(locations[1]["button text"]);
+```
+
+I valori della proprietà `button text` dovrebbero essere le stringhe `Buy 10 health (10 gold)`, `Buy weapon (30 gold)` e `Go to town square`.
+
+```js
+assert.equal(locations[1]["button text"][0], "Buy 10 health (10 gold)");
+assert.equal(locations[1]["button text"][1], "Buy weapon (30 gold)");
+assert.equal(locations[1]["button text"][2], "Go to town square");
+```
+
+Il secondo oggetto di `locations` dovrebbe avere una proprietà `button functions` con un array come valore.
+
+```js
+assert.isArray(locations[1]["button functions"]);
+```
+
+La proprietà `button functions` dovrebbe avere i valori di funzione `buyHealth`, `buyWeapon` e `goTown`.
+
+```js
+assert.equal(locations[1]["button functions"][0], buyHealth);
+assert.equal(locations[1]["button functions"][1], buyWeapon);
+assert.equal(locations[1]["button functions"][2], goTown);
+```
+
+Il secondo oggetto di `locations` dovrebbe avere una proprietà `text` con una stringa come valore.
+
+```js
+assert.isString(locations[1].text);
+```
+
+Il secondo oggetto di `locations` dovrebbe avere una proprietà `text` con il valore `You enter the store.`.
+
+```js
+assert.equal(locations[1].text, "You enter the store.");
+```
+
+Non dovresti modificare il primo oggetto di `locations`.
+
+```js
+assert.deepEqual(locations[0], {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+});
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+--fcc-editable-region--
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ }
+];
+--fcc-editable-region--
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+
+}
+
+function goTown() {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+function goStore() {
+ button1.innerText = "Buy 10 health (10 gold)";
+ button2.innerText = "Buy weapon (30 gold)";
+ button3.innerText = "Go to town square";
+ button1.onclick = buyHealth;
+ button2.onclick = buyWeapon;
+ button3.onclick = goTown;
+ text.innerText = "You enter the store.";
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md
new file mode 100644
index 00000000000..e65cfa2cb73
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b1762b7775124622e1a3.md
@@ -0,0 +1,176 @@
+---
+id: 62a8b1762b7775124622e1a3
+title: Step 60
+challengeType: 0
+dashedName: step-60
+---
+
+# --description--
+
+Invece di assegnare le proprietà `innerText` e `onclick` a specifiche stringhe e funzioni, la funzione `update` userà i dati dalla `location` che le viene passata. Prima di tutto, occorre passare i dati. Nella funzione `goTown`, chiama la funzione `update`. Ecco un esempio della chiamata della funzione `myFunction`: `myFunction();`.
+
+# --hints--
+
+Dovresti chiamare la funzione `update` nella funzione `goTown`.
+
+```js
+assert.match(goTown.toString(), /update\(\)/);
+```
+
+Non dimenticare il punto e virgola alla fine.
+
+```js
+assert.match(goTown.toString(), /update\(\);/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ },
+ {
+ name: "store",
+ "button text": ["Buy 10 health (10 gold)", "Buy weapon (30 gold)", "Go to town square"],
+ "button functions": [buyHealth, buyWeapon, goTown],
+ text: "You enter the store."
+ }
+];
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+--fcc-editable-region--
+function goTown() {
+
+}
+--fcc-editable-region--
+
+function goStore() {
+
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md
new file mode 100644
index 00000000000..a15d57a5968
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b3cc436db8139cc5fc09.md
@@ -0,0 +1,170 @@
+---
+id: 62a8b3cc436db8139cc5fc09
+title: Step 61
+challengeType: 0
+dashedName: step-61
+---
+
+# --description--
+
+Ora devi passare l'argomento `location` nella chiamata `update`. Puoi passare degli argomenti includendoli tra le parentesi della chiamata della funzione. Ad esempio, puoi chiamare `myFunction` con l'argomento `arg` in questo modo: `myFunction(arg)`. Passa l'array `locations` nella chiamata `update`.
+
+# --hints--
+
+Dovresti passare l'array `locations` nella chiamata `update`.
+
+```js
+assert.match(goTown.toString(), /update\(locations\);/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ },
+ {
+ name: "store",
+ "button text": ["Buy 10 health (10 gold)", "Buy weapon (30 gold)", "Go to town square"],
+ "button functions": [buyHealth, buyWeapon, goTown],
+ text: "You enter the store."
+ }
+];
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+--fcc-editable-region--
+function goTown() {
+ update();
+}
+--fcc-editable-region--
+
+function goStore() {
+
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md
new file mode 100644
index 00000000000..9b6d3a489f9
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b6536156c51500739b41.md
@@ -0,0 +1,190 @@
+---
+id: 62a8b6536156c51500739b41
+title: Step 62
+challengeType: 0
+dashedName: step-62
+---
+
+# --description--
+
+L'array `locations` contiene due location: town square e store. Attualmente stai passando l'intero array nella funzione update. Passa soltanto il primo elemento dell'array `locations` aggiungendo `[0]` alla fine della variabile. Ad esempio: `myFunction(arg[0]);`.
+
+Questa notazione si chiama notazione a parentesi. I valori in un array sono accessibili tramite il loro indice. Gli indici sono valori numerici e partono da 0 - questo sistema è detto a base zero. `arg[0]` è il primo elemento nell'array `arg`.
+
+# --hints--
+
+Dovresti usare la notazione a parentesi su `locations`.
+
+```js
+assert.match(code, /locations\[/);
+```
+
+Dovresti accedere al primo oggetto nell'array `locations`. Ricorda che gli array sono a base zero.
+
+```js
+assert.match(code, /locations\[0\]/);
+```
+
+Dovresti passare il primo oggetto nell'array `locations` alla funzione `update`.
+
+```js
+assert.match(code, /update\(locations\[0\]\);/);
+```
+
+Questa chiamata dovrebbe essere ancora nella funzione `goTown()`.
+
+```js
+assert.match(goTown.toString(), /update\(locations\[0\]\);/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ },
+ {
+ name: "store",
+ "button text": ["Buy 10 health (10 gold)", "Buy weapon (30 gold)", "Go to town square"],
+ "button functions": [buyHealth, buyWeapon, goTown],
+ text: "You enter the store."
+ }
+];
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+function update(location) {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+
+--fcc-editable-region--
+function goTown() {
+ update(locations);
+}
+--fcc-editable-region--
+
+function goStore() {
+
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md
new file mode 100644
index 00000000000..9a7381f3fa0
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b711ab7a12161c7d9b67.md
@@ -0,0 +1,176 @@
+---
+id: 62a8b711ab7a12161c7d9b67
+title: Step 63
+challengeType: 0
+dashedName: step-63
+---
+
+# --description--
+
+Adesso la funzione `update` deve utilizzare gli argomenti che le vengono passati. All'interno della funzione `update`, cambia l'assegnazione di `button1.innerText` in `location["button text"]`. Questo codice fa uso della notazione a parentesi per ottenere la proprietà `button text` dell'oggetto `location` passato alla funzione.
+
+# --hints--
+
+La funzione `update` dovrebbe usare la notazione a parentesi per ottenere la proprietà `button text` dell'oggetto `location` passato alla funzione.
+
+```js
+assert.match(update.toString(), /location[('|")button text\1]/);
+```
+
+Dovresti assegnare il valore della proprietà `button text` dell'oggetto `location` alla proprietà `innerText` di `button1`.
+
+```js
+assert.match(update.toString(), /button1\.innerText\s*=\s*location\[('|")button text\1\]/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ },
+ {
+ name: "store",
+ "button text": ["Buy 10 health (10 gold)", "Buy weapon (30 gold)", "Go to town square"],
+ "button functions": [buyHealth, buyWeapon, goTown],
+ text: "You enter the store."
+ }
+];
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+--fcc-editable-region--
+function update(location) {
+ button1.innerText = "Go to store";
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+--fcc-editable-region--
+
+function goTown() {
+ update(locations[0]);
+}
+
+function goStore() {
+
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md
new file mode 100644
index 00000000000..e7cb9c014aa
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8b9770050d217d2247801.md
@@ -0,0 +1,176 @@
+---
+id: 62a8b9770050d217d2247801
+title: Step 64
+challengeType: 0
+dashedName: step-64
+---
+
+# --description--
+
+`location["button text"]` è un array con tre elementi. Cambia l'assegnazione di `button1.innerText` in modo che corrisponda al primo elemento di questo array.
+
+# --hints--
+
+Dovresti accedere al primo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /location\[('|")button text\1\]\[0\]/);
+```
+
+Dovresti impostare la proprietà `button1.innerText` in modo che sia il primo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /button1\.innerText\s*=\s*location\[('|")button text\1\]\[0\]/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
+
+
+
+
+```
+
+```css
+body {
+ background-color: darkblue;
+}
+
+#text {
+ background-color: black;
+ color: white;
+ padding: 10px;
+}
+
+#game {
+ max-width: 500px;
+ max-height: 400px;
+ background-color: lightgray;
+ color: white;
+ margin: 0 auto;
+ padding: 10px;
+}
+
+#controls, #stats {
+ border: 1px solid black;
+ padding: 5px;
+ color: black;
+}
+
+#monsterStats {
+ display: none;
+ border: 1px solid black;
+ padding: 5px;
+ color: white;
+ background-color: red;
+}
+
+.stat {
+ padding-right: 10px;
+}
+```
+
+```js
+let xp = 0;
+let health = 100;
+let gold = 50;
+let currentWeapon = 0;
+let fighting;
+let monsterHealth;
+let inventory = ["stick"];
+
+const button1 = document.querySelector('#button1');
+const button2 = document.querySelector("#button2");
+const button3 = document.querySelector("#button3");
+const text = document.querySelector("#text");
+const xpText = document.querySelector("#xpText");
+const healthText = document.querySelector("#healthText");
+const goldText = document.querySelector("#goldText");
+const monsterStats = document.querySelector("#monsterStats");
+const monsterName = document.querySelector("#monsterName");
+const monsterHealthText =document.querySelector("#monsterHealth");
+const locations = [
+ {
+ name: "town square",
+ "button text": ["Go to store", "Go to cave", "Fight dragon"],
+ "button functions": [goStore, goCave, fightDragon],
+ text: "You are in the town square. You see a sign that says \"Store\"."
+ },
+ {
+ name: "store",
+ "button text": ["Buy 10 health (10 gold)", "Buy weapon (30 gold)", "Go to town square"],
+ "button functions": [buyHealth, buyWeapon, goTown],
+ text: "You enter the store."
+ }
+];
+
+// initialize buttons
+button1.onclick = goStore;
+button2.onclick = goCave;
+button3.onclick = fightDragon;
+
+--fcc-editable-region--
+function update(location) {
+ button1.innerText = location["button text"];
+ button2.innerText = "Go to cave";
+ button3.innerText = "Fight dragon";
+ button1.onclick = goStore;
+ button2.onclick = goCave;
+ button3.onclick = fightDragon;
+ text.innerText = "You are in the town square. You see a sign that says \"Store\".";
+}
+--fcc-editable-region--
+
+function goTown() {
+ update(locations[0]);
+}
+
+function goStore() {
+
+}
+
+function goCave() {
+ console.log("Going to cave.");
+}
+
+function fightDragon() {
+ console.log("Fighting dragon.");
+}
+
+function buyHealth() {
+
+}
+
+function buyWeapon() {
+
+}
+```
diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md
new file mode 100644
index 00000000000..3346775ef69
--- /dev/null
+++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62a8c0c8313e891a15ec23e7.md
@@ -0,0 +1,188 @@
+---
+id: 62a8c0c8313e891a15ec23e7
+title: Step 65
+challengeType: 0
+dashedName: step-65
+---
+
+# --description--
+
+Adesso aggiorna `button2.innerText` e `button3.innerText` in modo che vengano loro assegnate rispettivamente il secondo e il terzo valore dell'array `button text`.
+
+# --hints--
+
+Dovresti accedere al secondo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /location\[('|")button text\1\]\[1\]/);
+```
+
+Dovresti impostare la proprietà `button2.innerText` in modo che sia il secondo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /button2\.innerText\s*=\s*location\[('|")button text\1\]\[1\]/);
+```
+
+Dovresti accedere al terzo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /location\[('|")button text\1\]\[2\]/);
+```
+
+Dovresti impostare la proprietà `button3.innerText` in modo che sia il terzo elemento della proprietà `button text` dell'argomento `location`.
+
+```js
+assert.match(update.toString(), /button3\.innerText\s*=\s*location\[('|")button text\1\]\[2\]/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+
+
+ RPG - Dragon Repeller
+
+
+
+
+ XP: 0
+ Health: 100
+ Gold: 50
+
+
+
+
+
+
+
+ Monster Name:
+ Health:
+
+
+ Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
+
Please fill out this form with the required information
+
+
+
+```
+
+```css
+body {
+ width: 100%;
+ height: 100vh;
+ margin: 0;
+ background-color: #1b1b32;
+ color: #f5f6f7;
+ font-family: Tahoma;
+ font-size: 16px;
+}
+
+h1, p {
+ margin: 1em auto;
+ text-align: center;
+}
+
+form {
+ width: 60vw;
+ max-width: 500px;
+ min-width: 300px;
+ margin: 0 auto;
+ padding-bottom: 2em;
+}
+
+fieldset {
+ border: none;
+ padding: 2rem 0;
+ border-bottom: 3px solid #3b3b4f;
+}
+
+fieldset:last-of-type {
+ border-bottom: none;
+}
+
+label {
+ display: block;
+ margin: 0.5rem 0;
+}
+
+input,
+textarea,
+select {
+ margin: 10px 0 0 0;
+ width: 100%;
+ min-height: 2em;
+}
+
+input, textarea {
+ background-color: #0a0a23;
+ border: 1px solid #0a0a23;
+ color: #ffffff;
+}
+
+.inline {
+ width: unset;
+ margin: 0 0.5em 0 0;
+ vertical-align: middle;
+}
+
+input[type="submit"] {
+ display: block;
+ width: 60%;
+ margin: 1em auto;
+ height: 2em;
+ font-size: 1.1rem;
+ background-color: #3b3b4f;
+ border-color: white;
+ min-width: 300px;
+}
+
+input[type="file"] {
+ padding: 1px 2px;
+}
+
+a {
+ color: #dfdfe2;
+}
+
+```
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
index c0ce02db9dd..61ce940b4b6 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
@@ -164,7 +164,7 @@ async (getUserInput) => {
const res = await fetch(url + '/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- body: `username=fcc_test_${Date.now()}`.substingr(0, 29)
+ body: `username=fcc_test_${Date.now()}`.substring(0, 29)
});
if (res.ok) {
const { _id, username } = await res.json();
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/discordian-date.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/discordian-date.md
index 89076643a6b..8ba11ce5e44 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/discordian-date.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/discordian-date.md
@@ -7,12 +7,11 @@ dashedName: discordian-date
---
# --description--
+O calendário gregoriano é um calendário solar com 12 meses de 28-31 dias cada. Uma semana consiste em sete dias e com 52 semanas e 1 dia por ano. O ano consiste em 365 dias, com um dia a mais adicionado a fevereiro nos anos bissextos. Um ano bissexto ocorre a cada quatro anos, exceto para os primeiros três anos de virada de século de cada 400 anos.
-O calendário gregoriano é um calendário solar com 12 meses de 28 a 31 dias cada. O ano nos calendários consiste em 365 dias. com um dia a mais adicionado em fevereiro nos anos bissextos, à exceção de três anos que fecham um século a cada 400 anos.
+O calendário discordiano está alinhado ao calendário gregoriano e começa em 1º de janeiro. A semana consiste em cinco dias e com 73 semanas por ano. O ano também consiste em 365 dias, com um dia extra inserido entre o caos 59 e o caos 60 todo ano bissexto.
-O calendário discordiano está alinhado ao calendário gregoriano e começa em 1º de janeiro. A sua semana consiste em cinco dias, com 73 semanas por ano. A cada quatro anos no calendário discordiano, um dia extra é inserido entre caos 59 e caos 60.
-
-Os meses, dias de semana e eventos no calendário discordiano são fornecidos assim:
+Os meses, dias de semana, eventos de apóstolos e feriados no calendário discordiano são fornecidos assim:
Estações: `'Chaos', 'Discord', 'Confusion', 'Bureaucracy', 'The Aftermath'`.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/6153a3952facd25a83fe8083.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/6153a3952facd25a83fe8083.md
index 3fd5b30e45b..aed0adf8b4a 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/6153a3952facd25a83fe8083.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/6153a3952facd25a83fe8083.md
@@ -7,7 +7,7 @@ dashedName: step-20
# --description--
-O pseudoelemento `::after` cria um elemento que é o último filho do elemento selecionado. Podemos usá-lo para adicionar um elemento vazio após a última imagem. Se dermos a esse elemento a mesma `width` das imagens, ele empurrará a última imagem para a esquerda quando a galeria estiver em um layout de duas colunas. Nesse momento, ele está no centro porque definimos `justify-content: center` no contêiner flex.
+O pseudoelemento `::after` cria um elemento que é o último filho do elemento selecionado. Você pode usá-lo para adicionar um elemento vazio após a última imagem. Se você der a esse elemento a mesma `width` das imagens, ele empurrará a última imagem para a esquerda quando a galeria estiver em um layout de duas colunas. Neste momento, ele está no centro porque você definiu `justify-content: center` no contêiner flex.
Exemplo: